从陈一哲家回来后,日子仿佛被按下了快进键。复赛日益临近,洛屿辰、陈一哲和周明轩进入了备赛冲刺阶段。每天放学后,机房成了他们的第二个家,键盘敲击声、低声讨论、偶尔爆发的短暂争论,交织成主旋律。
陈一哲将“队长”的角色发挥到了极致。他制定了详细的备赛时间表,精确到每天的训练重点、模拟题类型和复盘时间。他不知从哪里弄来了更多内部模拟题,难度和风格都极其刁钻,常常让周明轩抓耳挠腮,也让洛屿辰不得不打起十二分精神应对。
训练强度很大,但成效显著。三人的配合越来越默契,往往一个眼神,一个简短的词语,就能明白对方的意图。洛屿辰天马行空的创造力,陈一哲严谨缜密的架构能力,周明轩刁钻灵巧的优化思路,在高压下不断碰撞、融合,形成一种独特的、高效的团队节奏。
在这种高强度的、纯粹技术性的互动中,那些关于家庭、关于界限的微妙情绪,似乎暂时被搁置了。陈一哲在机房里,是最放松的。他会因为一个精妙的算法设计而眼睛发亮,会因为攻克一道难题而微微扬起嘴角,也会在洛屿辰提出一个大胆到近乎冒险的思路时,蹙眉认真思索,而不是第一时间回避目光。
洛屿辰喜欢这样的陈一哲。专注,投入,散发着智力上的光芒,偶尔流露出的真实情绪,比任何刻意的脸红都更让他心动。
但平静之下,暗流从未停止涌动。
洛屿辰能感觉到,陈一哲在刻意维持一种“队友以上,恋人未满”的微妙平衡。他会接受洛屿辰递过来的水,会在他熬夜后提醒他注意休息,会在讨论时认真听取他的每一个想法。但他们的交流,几乎从不超出“比赛”和“学习”的范畴。没有多余的闲聊,没有刻意的靠近,甚至……连图书馆里那种心照不宣的沉默对视,在机房的日光灯下,也似乎变得克制了许多。
仿佛有一道无形的墙,在陈一哲的家里被加固后,又被他自己默默地、坚定地垒在了两人之间。
洛屿辰不着急,也不点破。他只是耐心地、一如既往地,扮演着那个“最可靠的队友”。他会在陈一哲忙学生会事务错过饭点时,默默带一份他喜欢的清淡餐食;会在陈一哲因为某个技术难点眉头紧锁时,不经意地递过去一个关键的参考文献链接;也会在训练结束后,很自然地和他一起走到校门口,在分开前,说一句“明天见,加油”。
他的“好”,润物细无声,却又无处不在。不给对方压力,却也让对方无法忽视。
周明轩夹在中间,偶尔会露出困惑的表情,但更多时候,他沉浸在自己的算法世界里,对两人之间那点暗涌毫无所觉。
时间在代码和算法中飞快流逝。转眼到了复赛前三天。
这天下午,最后一次模拟赛。陈一哲挑选了一套号称“地狱难度”的往年真题。比赛从下午两点开始,持续三个小时。
起初还算顺利。前三道题虽然棘手,但在三人通力合作下,都有惊无险地拿下。然而,第四道压轴题,像一座横亘在眼前的大山,拦住了去路。
题目涉及复杂的图论建模和近似算法,条件极其苛刻,数据规模庞大。常规思路要么时间复杂度爆炸,要么无法保证精度。三人尝试了多种方法,都卡在了某个关键步骤。
时间一分一秒过去,机房里的空气仿佛凝固了。周明轩额头上沁出冷汗,手指敲击键盘的速度越来越快,却不断被红色的“Wrong Answer”提示打断。陈一哲眉头紧锁,在白板上写写画画,试图找出状态转移方程的漏洞,但每次推演到一半,就又陷入死胡同。
洛屿辰盯着屏幕,大脑以前所未有的速度运转。各种图论算法、网络流模型、启发式策略在脑海里飞速闪过,又被他一一否决。汗水顺着鬓角滑落,滴在键盘上。
还剩下四十分钟。
一种熟悉的、混合着焦虑和挫败感的低气压,开始在三人间弥漫。这是备赛以来,他们遇到的最大瓶颈。如果连模拟赛都无法攻克,正式比赛怎么办?
“要不……放弃这道,保前面的分?”周明轩小声提议,声音带着不确定。
陈一哲没说话,只是盯着白板上密密麻麻的公式,嘴唇抿成一条直线,下颌线绷得很紧。这是他压力极大的表现。
洛屿辰也沉默着。他的目光从屏幕上移开,落在陈一哲紧绷的侧脸上。汗水浸湿了他额前的碎发,粘在光洁的皮肤上。他的睫毛在日光灯下微微颤动,眼底倒映着白板上那些混乱的线条,有挫败,有不甘,还有一丝……洛屿辰从未在他眼中见过的、近乎脆弱的茫然。
那一刻,洛屿辰的心脏,像是被什么东西狠狠撞了一下。
他受不了陈一哲露出这种表情。受不了他因为一道题,而对自己产生怀疑。
就在陈一哲深吸一口气,似乎要做出“放弃”的决定时,洛屿辰忽然站起身,走到白板前,拿起板擦,将上面一大片混乱的推演痕迹全部擦掉。
“啪嗒”一声,板擦被扔在一边。
陈一哲和周明轩都愕然抬头看向他。
洛屿辰没看他们,只是拿起一支红笔,在白板干净的区域,画了一个极其简单的、只有几个节点和几条边的示意图。然后,他用笔尖重重敲了敲其中一个节点。
“我们之前一直想用最大流最小割来建模资源分配,”他的声音响起,不高,却带着一种奇异的、不容置疑的冷静,甚至压过了刚才的焦躁,“但题目里这个‘动态优先级’的约束,让割的性质变得不确定。所以无论怎么优化建图,都会卡在精度或者复杂度上。”
他顿了顿,目光扫过陈一哲和周明轩,琥珀色的眼睛在日光灯下亮得惊人。
“为什么不换个思路?不用流,用匹配。”他的笔尖在图上飞快地勾勒,“把资源和任务看成二分图的两部。动态优先级,可以转化成带权匹配中的约束条件,用费用流或者KM算法的变种来解决。虽然理论最坏复杂度还是高,但随机数据下,配合启发式初始化和剪枝,完全有机会跑出来。”
他的语速很快,思路跳跃,但逻辑清晰。每一个点,都精准地戳在了之前思路的盲区上。
陈一哲怔怔地看着他,看着他笔下那个简单却直指核心的示意图,看着他因为激动而微微发亮的脸颊,和那双燃烧着某种不服输火焰的眼睛。脑海里那些混乱的、纠缠的线索,仿佛被这道突如其来的光劈开,瞬间变得清晰。
他几乎是立刻抓过另一支笔,在洛屿辰的图旁边飞快地补充细节,建立数学模型,推演约束条件。他的动作很快,笔尖划过白板发出急促的沙沙声,眼神重新聚焦,闪烁着熟悉的、锐利的光芒。
“可行。”他停笔,声音带着压抑的兴奋,看向洛屿辰,“虽然冒险,但值得一试。明轩,你负责实现带花树求一般图最大权匹配的板子,我和洛屿辰来设计启发函数和剪枝策略。还剩三十分钟,够我们拼一把。”
“好!”周明轩也像被注入了强心剂,立刻扑到电脑前。
接下来的三十分钟,是洛屿辰经历过的最紧张、也最酣畅淋漓的协作。他和陈一哲几乎不需要语言交流,一个人在白板上推演,另一个人立刻在代码中实现关键部分;一个人提出优化想法,另一个人马上验证补充。思路在两人之间飞速传递、碰撞、完善,像是两台高速运转的CPU,通过一条无形的、带宽惊人的总线紧密相连。
周明轩也超常发挥,在极短的时间内,将那个复杂的匹配算法模块调试通过,并加入了洛屿辰提出的一个巧妙的随机化初始化技巧。
最后五分钟,代码整合完毕。陈一哲按下运行键。
三双眼睛紧紧盯着屏幕。进度条缓慢爬升,时间一秒一秒流逝。
就在倒计时还剩十秒时,屏幕上跳出了绿色的“Accepted”。