OI爽文(量子寒冬)
写在前面的话:笔者只是给予一些剧情走向的控制以及极少的修改,deepseek就能做到如此地步,运用了许多信息学词汇,且剧情近乎连贯,具有一定的戏剧性,deepseek进步之大,令人惊叹
作者没退役啊,作者刚打一年竞赛,作者中考去了,虽然确实偷懒了吧,sorry……
序章
"就这?你的线段树连暴力都不如!"
刺耳的声音在机房内炸开,陈默的指尖悬停在键盘上方,微微发抖。评测系统黑色的"TLE"三个字母刺痛着他的视网膜——Time Limit Exceeded,又是超时。
身后传来椅子拖动的声音,周扬带着他那标志性的讥笑走到陈默身后,故意提高音量:"大家快来看啊,陈大师又发明了新算法——'睡梦线性筛',运行时间比题目时限还长!"
机房内响起零星的笑声。陈默感觉耳根发烫,默默关掉评测页面。屏幕倒影中,他看到自己凌乱的刘海下那双布满血丝的眼睛——为了这次省级集训队的选拔,他已经连续三周每天只睡四个小时了。
"某些人还是早点认清现实吧,"周扬俯身,在陈默耳边用只有两人能听见的声音说,"信息学竞赛是要靠天赋的,不是你这种县城中学来的土包子死记硬背就能玩得转的。"
陈默没说话,只是慢慢攥紧了拳头。指甲陷入掌心的疼痛让他保持清醒。他知道周扬说的部分是对的——在省重点实验中学这群从小接触编程的天之骄子面前,他这个半路出家的转校生确实像个异类。
"好了,今天的训练到此结束。"指导老师王教授拍了拍手,"明天上午八点,最后一场模拟赛,将决定省赛的参赛名单。"
同学们陆续离开,陈默仍坐在位置上,盯着自己那份被判超时的代码。窗外的雨声渐大,机房的日光灯管发出轻微的嗡嗡声。
"陈默,走之前记得关总闸。"王教授在门口停顿了一下,欲言又止,最终还是轻轻带上了门。
空荡荡的机房只剩下陈默一人。他重新打开代码文件,试图找出可以优化的部分。但疲惫如潮水般涌来,眼前的代码开始模糊成一片黑色小蚂蚁。
"再试最后一次..."陈默揉了揉太阳穴,按下编译键。
【运行时间:2.15秒,TLE】
"砰!"陈默的拳头砸在桌面上,水杯里的水溅到键盘上。他手忙脚乱地用袖子擦拭,突然从口袋里掉出一个小东西——那枚今天放学路上在旧书店捡到的U盘。
书店老板是个古怪的老人,硬说这U盘和陈默"有缘",非要塞给他。"小伙子,这里面有些东西,正适合你这种'看得见代码背后世界'的人。"当时陈默只当老人胡言乱语,现在却鬼使神差地将U盘插入了电脑。
"反正不会更糟了..."他喃喃自语。
U盘没有显示任何文件,只有一个名为"CM"的隐藏文件夹。陈默点开后,屏幕突然闪烁了一下,接着他的代码编辑器自动打开了,原本的代码正在被某种力量快速修改——删减、重组、优化...
"什么鬼?!"陈默想去拔U盘,却被屏幕上呈现的新代码吸引住了。他的O(n²)暴力算法被彻底重构,变成了一种他从未见过的非递归线段树实现方式,注释写着"zkw线段树,空间利用率极致优化"。
更神奇的是,代码旁边自动生成了一个动态演示窗口,清晰展示了这种数据结构如何以近乎魔法般的效率处理区间查询。陈默瞪大眼睛,看着那些节点如何在虚拟空间中自动索引、合并、传递标记...
"这...这不科学..."
就在这时,屏幕上突然跳出一个红色对话框:
【Code Master系统激活中...】
【宿主识别:陈默,潜力评估:A+】
【当前任务:在24小时内掌握zkw线段树,否则将触发脑电波惩罚】
陈默猛地向后一仰,差点从椅子上摔下来。他第一反应是自己疲劳过度产生了幻觉,但当他掐了自己一把后,那个诡异的界面依然存在,现在甚至开始显示他的能力值图表:
算法能力:42/100 代码速度:35/100 数学基础:50/100 创新思维:68/100
"我一定是疯了..."陈默颤抖着伸手去按电源键。
【警告!强制中断将导致永久性神经损伤】
陈默的手僵在半空。窗外的雨更大了,一道闪电划过,照亮了他苍白的脸和屏幕上那行闪烁的血色文字:
【开始训练吧,未来的Code Master。第一个目标——让那个周扬跪下来舔你的键盘。】
第一章
陈默盯着屏幕上闪烁的血色文字,喉咙发紧。他下意识地环顾四周——空荡荡的机房,雨点敲打窗户的声音,还有机箱风扇轻微的嗡鸣。这一切都真实得不容置疑。
"你...到底是什么东西?"他的声音在颤抖。
屏幕上的文字发生了变化:
【Code Master Ver 0.9,量子代码学习辅助系统】
【制造年代:2045年】
【核心功能完整度:10%】
【警告:能量不足,基础教学模块仅能维持30天】
陈默掐了一把自己的大腿。疼痛告诉他这不是梦。他小心翼翼地把手放回键盘上:"你说你是来自未来的系统?有什么证据?"
屏幕上的文字消失了,取而代之的是一段动态演示——陈默今天在训练赛上写的那道线段树题目,但解法完全不同。节点以一种他从未见过的方式层层递推,将原本需要递归实现的查询过程变成了精妙的位运算组合。
"这是...非递归线段树?"陈默凑近屏幕,职业本能暂时压过了恐惧。
【zkw线段树,由张昆伟在2013年首次公开】
【比常规实现快1.8倍,内存占用减少40%】
【当前宿主掌握度:0%】
陈默的呼吸变得急促。如果这是真的,如果他能学会这种优化技术...
"为什么要帮我?"他突然警觉起来。
屏幕闪烁了几下,弹出一段让陈默毛骨悚然的文字:
【因为你将成为未来的我】
【或者说,我应该成为未来的你】
【时间线变动率89.7%,核心指令:确保"量子计算寒冬"事件不发生】
陈默感到一阵眩晕。这些词汇超出了他的理解范围。但当他看到屏幕上自动调出的自己那篇超时代码时,一种难以言喻的兴奋感开始升腾。
"好吧,假设我暂时相信你。"陈默深吸一口气,"你能怎么帮我?"
屏幕立即响应:
【第一阶段任务:掌握基础优化技术】
【当前目标:72小时内熟练应用zkw线段树】
【奖励:开启"代码视觉化"训练模式】
【惩罚:脑神经短暂过载(约等于严重偏头痛)】
陈默苦笑:"真是标准的魔鬼交易。"但他已经点开了系统提供的教程文档。
接下来的三个小时,陈默完全沉浸在一种前所未有的学习体验中。系统并非简单地传授知识,而是将算法原理拆解成数百个微小的"代码单元",每个单元都伴随着交互式练习。错误会被立即指出,并给出三种以上的改进方案。
当陈默终于理解如何利用位运算快速计算线段树的层数时,屏幕上突然炸开一片绚丽的代码烟花。
【第一阶段进度:15%】
【脑神经适应性:良好】
【建议:保持当前状态4.3小时后休息】
陈默看了眼时间——已经晚上十一点半了。宿舍楼很快就会锁门。他犹豫了一下,还是决定保存进度。
"系统,我明天再继续。"
【确认休眠】
【提示:本系统仅可通过该U盘访问,请妥善保管】
陈默拔出U盘时,注意到金属外壳上刻着一个极小的标志:一个莫比乌斯环中间贯穿着一行二进制代码。他下意识地摸了摸那个图案,感受到一丝微弱的电流般的刺痛。
第二天清晨,陈默顶着黑眼圈出现在教室门口。他昨晚辗转反侧,脑海中全是那些飞舞的代码块。
"哟,我们的TLE王子来了。"周扬的声音从后排传来,"听说你昨晚在机房待到很晚?临时抱佛脚?"
陈默没有理会,径直走向自己的座位。他能感觉到周扬探究的目光一直追随着自己。
课间,陈默偷偷在笔记本上默写zkw线段树的构建公式。突然,一个身影挡在了他面前。
"看什么呢这么入迷?"赵志强——周扬的忠实跟班——一把抢过陈默的笔记本,"哇哦,这是什么鬼画符?"
陈默猛地站起来:"还给我!"
赵志强夸张地后退一步:"火气这么大?该不会是在研究怎么作弊吧?"他眯起眼睛仔细看那页笔记,"线段树...优化?就你?"
周扬不知何时也走了过来。他扫了一眼笔记,眉头微不可察地皱了一下:"有意思。陈默,你从哪抄来的这些?"
"自学的不行吗?"陈默夺回笔记本,心跳加速。那些笔记上有几个关键点是系统特别强调的,目前公开的教材上根本没有。
周扬轻笑一声:"行,当然行。"他凑近陈默耳边,"不过省赛名额只有五个,你觉得王教授会选一个连基本动态规划都写不利索的'自学者'吗?"
上课铃响了,人群散去。陈默坐回座位,发现自己的手心全是汗。他偷偷看了眼后排——周扬正低声对赵志强说着什么,不时朝自己这边瞥来。
午休时间,陈默躲进了图书馆最角落的计算机区。他插上U盘,屏幕立刻亮起:
【检测到宿主处于紧张状态】
【肾上腺素水平:偏高】
【建议:进行5分钟呼吸调节后再继续学习】
陈默惊讶于系统的敏锐:"你能监测我的生理状态?"
【基础生物传感器功能完整度:23%】
【当前优先级:完成线段树模块】
接下来的两天,陈默过着两点一线的生活:教室和机房。他刻意避开周扬一伙人,连吃饭都是匆匆解决。系统提供的训练强度极大,但效果惊人——昨晚他成功将自己的一道旧题解优化到了0.5秒以内。
第三天傍晚,陈默正在机房攻克系统布置的最后一道练习题。题目要求在一秒内处理百万级别的区间查询,常规方法根本无法通过。
"构建zkw树...位运算替代除法...标记永久化..."陈默喃喃自语,手指在键盘上飞舞。屏幕上的代码越来越精简,却越来越高效。
【最后一步:优化查询边界条件】
陈默突然福至心灵,删除了两行冗余判断,改为一个巧妙的位与运算。他按下运行键——
【运行时间:0.38秒,内存占用:8.7MB】
【AC(Accepted)】
"成功了!"陈默差点从椅子上跳起来。
【恭喜!第一阶段任务完成】
【代码视觉化模块解锁】
【警告:初次使用可能导致轻微眩晕】
还没等陈默反应过来,屏幕上的代码突然"炸开",化作无数发光粒子,在他眼前重组为一个三维立体结构。线段树的每个节点都清晰可见,数据流动如同血液在血管中奔涌。查询过程变成了一道道金色光线,在树状结构中快速穿梭。
"这...太美了..."陈默伸出手,惊讶地发现自己竟然能"触摸"到这些虚拟节点。更神奇的是,当他试图修改某个参数时,整个结构立刻响应变化,直观展示出效率的升降。
【神经同步率:71%】
【适配性超出预期】
【建议:尝试解决实际问题巩固技能】
陈默迫不及待地打开了校内OJ系统,找到上周让他吃尽苦头的那道区间统计题。在代码视觉化的辅助下,他清晰地看到了自己原有算法的瓶颈所在——大量不必要的递归调用消耗了70%以上的时间。
重新构建的zkw线段树在视觉化空间中如同一柄精密的瑞士军刀,每个操作都简洁有力。陈默提交代码后,评测系统瞬间返回结果:
【运行时间:0.21秒,排名:1/157】
"第一名..."陈默盯着屏幕,一种前所未有的成就感涌上心头。
"不可能!"一个尖锐的声音从身后传来。陈默猛地回头,看到赵志强瞪大的眼睛和微微张开的嘴。
"你...你怎么可能比周扬还快?"赵志强结结巴巴地说,"他用了各种优化才跑到0.3秒!"
陈默平静地关闭页面:"运气好而已。"
赵志强狐疑地扫视陈默的电脑屏幕,又看了看他手边的U盘:"你该不会用了什么外挂吧?"
陈默心跳漏了一拍,但表面不动声色:"OJ系统有反作弊检测,你不知道吗?"
赵志强悻悻地走了,但陈默知道这事没完。果然,不到十分钟,周扬就带着几个校队成员气势汹汹地闯进机房。
"听说有人破了我的记录?"周扬的声音甜得发腻,"让我们看看天才的代码长什么样?"
陈默默默让开位置。周扬仔细检查了他的代码,表情从轻蔑逐渐变为困惑,最后定格在一种古怪的警惕上。
"这是...你自己写的?"周扬指着那段精妙的位运算。
陈默点头:"参考了一些论文。"
"哪篇论文?"
"《非递归线段树及其在信息学竞赛中的应用》,张昆伟,2013年。"陈默流畅地回答,这是系统提供的背景资料。
周扬的眼中闪过一丝阴霾。他站起身,居高临下地看着陈默:"明天就是选拔赛了。希望你不是只会这一招。"
周扬一行人离开后,陈默长舒一口气。
他望向机房门口,那里早已空无一人,但他仿佛能感觉到黑暗中有一双眼睛正死死盯着自己。明天的选拔赛,恐怕不会太平。
第二章
选拔赛当天,陈默提前一小时到达机房。清晨的阳光透过百叶窗在地板上投下条纹状的阴影,他坐在指定的机位前,手指无意识地敲击着桌面。
"紧张?"
一个清冷的女声从身后传来。陈默回头,看到林雨晴抱着几本厚重的算法书站在那里。她是校队里唯一的女生,也是少数从不参与周扬小团体的人。
"有点。"陈默老实承认,让出半个座位,"你来得真早。"
林雨晴放下书,没有坐下的意思:"我看过你昨天那道题的解法。非递归线段树的实现很漂亮,但省赛不会只考这个。"
陈默心头一紧。林雨晴是校队公认的理论派,数学能力甚至超过周扬。如果她起疑...
"我最近在研究各种优化方法。"他尽量保持语气自然,"你...觉得有问题吗?"
林雨晴推了推眼镜,镜片后的眼睛锐利如刀:"问题就是太专一了。周扬已经把你的代码风格发给了全队研究。"她停顿一下,"他们准备了三道你最不擅长的动态规划题。"
陈默的胃沉了下去。动态规划确实是他最薄弱的环节,连系统都还没开始针对性训练。
"为什么要告诉我?"
林雨晴转身走向自己的机位,丢下一句话:"我讨厌小团体,更讨厌有人破坏公平竞争。"
陈默愣了片刻,随即反应过来——她以为周扬要作弊针对自己。某种程度上确实如此,只不过自己也有个"秘密武器"。
他悄悄插入U盘,屏幕闪烁后显示:
【检测到竞赛环境】
【临时任务:进入校队前五名】
【奖励:动态规划优化模块解锁】
【特别提示:遇到困难时可呼出"时空缓流"功能(限用1次)】
"时空缓流?"陈默小声嘀咕。
【将主观时间流速降为正常1/10,持续3分钟】
【副作用:后续2小时反应速度下降20%】
机房陆续坐满,王教授带着密封的题目U盘走了进来。陈默注意到周扬和赵志强不时看向自己,脸上带着胜券在握的笑容。
"比赛规则和正式省赛一致。"王教授插入U盘,"五道题,四个小时。排名前五的同学将代表学校参加省赛。"
题目出现在屏幕上的一瞬间,陈默就暗叫不好——第一道就是树形动态规划,要求在一棵有十万节点的树上统计满足特定条件的路径数目。这正是系统提到过他还未掌握的领域。
键盘敲击声如暴雨般响起。陈默强迫自己冷静下来,开始写基础暴力解法。至少先拿到部分分数。
四十分钟过去,陈默的暴力解法只通过了30%的测试点。排名榜上,周扬已经AC了第一题,高居榜首。林雨晴紧随其后,其他人的进度也大都领先于陈默。
"系统,有什么建议吗?"陈默在心中默问。
【当前题目标准解法:二次扫描树形DP】
【你的掌握度不足】
【建议:使用时空缓流紧急学习】
陈默咬了咬牙:"启用时空缓流。"
刹那间,世界安静了下来。键盘声、咳嗽声、甚至空调的嗡嗡声都拉长成了怪异的低频噪音。陈默看向四周,发现其他人的动作几乎凝固——赵志强举起的水杯悬在半空,溅出的水滴静止如水晶。
只有屏幕上的倒计时仍在快速跳动,但速度似乎慢了十倍。
【时空缓流激活】
【剩余时间:2分55秒】
【快速学习模块启动】
陈默的视野被强行拉回屏幕,大量关于树形DP的知识如洪水般涌入脑海。特别是一种名为"上下换根"的优化技巧格外清晰,系统用红色高亮标注了它与当前题目的契合点。
三分钟的主观时间转瞬即逝。当世界重新"加速"时,陈默差点从椅子上弹起来——他的太阳穴突突直跳,仿佛刚跑完马拉松。
但脑海中的知识确实存在。他删掉之前的暴力代码,开始构建二次扫描DP框架。奇妙的是,原本晦涩的状态转移方程现在变得无比自然,他甚至加入了几个系统没教过但自己领悟的小优化。
"提交。"
评测系统停顿了令人窒息的两秒钟——
【运行时间:0.31秒,内存:16.7MB】
【AC(Accepted)】
陈默长舒一口气,看向实时排名:从垫底一跃升至第四。周扬已经AC了两题,仍居第一,但领先优势缩小了。
"怎么可能..."赵志强的声音从后排传来,"他刚才还在写暴力..."
周扬回头冷冷地扫了陈默一眼,转身继续敲代码。陈默注意到他的肩膀线条绷得紧紧的。
第二题是数据结构与数学的结合,恰好落在陈默最近苦练的线段树优化范围内。他仅用二十分钟就AC了,排名升至第二,仅次于周扬。
第三题是图论,陈默选择保守策略,拿了80%的分数。林雨晴这轮表现出色,反超周扬暂列第一。比赛进入白热化阶段。
最后两题同时放出。陈默快速浏览后心头一沉——第四题是周扬最擅长的网络流,而第五题是个看似简单却暗藏杀机的计数问题,需要极强的组合数学能力。
"先攻第五题。"系统突然在屏幕上显示
【第四题陷阱:周扬已准备特殊测试数据针对你】
陈默悄悄擦了擦手心的汗,转向第五题。题目要求计算在特定约束下排列组合的数量,模一个大质数。他尝试了几个常见模型都不适用。
时间一分一秒流逝。周扬已经AC了第四题,总分重回第一。林雨晴在第五题卡住,转向第四题。陈默的排名滑落至第三。
还剩一小时。陈默盯着第五题的数学公式,突然灵光一现——这可以转化为多重集合的组合问题!他迅速写下转化后的表达式,但还需要计算一个复杂的多重积分。
"系统,这个积分..."
【提示:使用生成函数与FFT加速】
【你的数学基础不足】
【建议:寻求合作】
陈默鬼使神差地看向林雨晴。她正皱眉盯着第五题,草稿纸上写满了生成函数表达式。两人的目光在空中相遇,林雨晴犹豫了一下,举起草稿纸,上面写着一个漂亮的数学变换。
正是陈默需要的那个关键步骤!
陈默点头致谢,迅速将这一步骤编入程序。剩下的部分他用自己刚学的数论知识处理,最后加入一个系统教过的快速傅里叶变换优化。
"提交。"
【运行时间:0.28秒】
【AC】
排名瞬间更新:陈默以总罚时优势超越周扬,暂列第一!
机房内一片哗然。周扬猛地站起来,椅子在地板上刮出刺耳的声音。他快步走向教师机:"王教授,我要求检查陈默的代码!"
王教授皱眉:"理由?"
"他一个月前连基础DP都写不好,现在却能解这种难度的组合题?"周扬的声音因愤怒而略微发抖,"这不合理!"
林雨晴突然开口:"他的数学变换确实很漂亮,但并非不可理解。"她推了推眼镜,"而且OJ系统有严格的作弊检测。"
王教授思索片刻:"陈默,你愿意解释一下解题思路吗?"
陈默深吸一口气,站起来走到投影仪前。出乎他自己意料的是,解释过程异常流畅——那些经由系统灌输的知识,经过这几天的消化,已经真正成为了他自己的东西。
"...所以最后用FFT加速卷积计算,将复杂度从O(n²)降到O(n log n)。"陈默结束讲解时,看到王教授眼中闪过一丝赞赏。
周扬脸色铁青地回到座位。最后二十分钟,他疯狂尝试超越陈默的分数,但在第五题上始终无法突破。
"时间到!"王教授宣布,"最终排名:陈默第一,周扬第二,林雨晴第三..."
陈默几乎不敢相信自己的耳朵。他看向U盘,屏幕上闪过一行字:
【任务完成】
【动态规划模块已解锁】
【能力值更新:
算法能力:65/100 (+23)
代码速度:58/100 (+23)
数学基础:62/100 (+12)
创新思维:74/100 (+6)】
周扬收拾东西的声音格外大。经过陈默身边时,他压低声音说:"别高兴太早,省赛见。"
林雨晴则停留了片刻:"你的代码风格...很特别。有机会交流一下?"
陈默点点头,突然意识到这是他转学以来第一次收到同学的主动邀约。
走出机房时,夕阳正好。陈默摸出口袋里的U盘,金属表面微微发热,仿佛也在为胜利而兴奋。但他没注意到的是,机房的监控摄像头悄悄转动,对准了他离去的背影。
而在校园某个角落的办公室里,一个中年男子正盯着监控画面中的陈默,手指轻轻敲击着桌面上的文件——那是一份关于"量子计算实验事故"的机密报告。
第三章
省赛前两周,深夜的机房。
陈默盯着屏幕上闪烁的代码,眼睛酸涩得几乎睁不开。U盘插在主机上微微发烫,投影出一段复杂得令人眩晕的算法流程图。
"这就是你说的'非确定性算法'?"陈默揉了揉太阳穴,"省赛真的会用上这个?"
【概率87.3%】
【近三年省级以上竞赛中,非确定性算法解题占比逐年上升15%】
【特别提示:掌握此技术可大幅领先同级别选手】
陈默叹了口气。自从校内选拔赛夺冠后,系统提供的训练内容越来越超前,已经远远超出了普通省赛范围。过去一周,他学习了概率化数据结构、近似算法甚至一些最基础的量子编程概念。
"但这些东西的原理我还没完全搞懂,"陈默指着一段利用随机化优化的代码,"比如这里为什么要用梅森旋转算法而不是普通伪随机?"
【效率提升29.8%】
【理解非必要,掌握应用模式即可】
陈默皱起眉头。一个月前,系统还会耐心解释每个优化的数学基础,现在却越来越倾向于让他死记硬背"黑科技"。
窗外一道闪电划过,照亮了陈默疲惫的脸。雷雨季节开始了,潮湿的空气让键盘摸起来有些黏手。他保存进度,准备回宿舍休息。
刚走到机房门口,陈默猛地刹住脚步——走廊尽头有两个人影,借着昏暗的应急灯,他认出是周扬和赵志强。他们正站在教师办公室门口,周扬手里拿着一个U盘。
陈默本能地退回阴影中。这么晚了,他们来机房干什么?
"...测试数据已经改好了,"周扬的声音压得很低,"明天训练赛的第三题,只要陈默提交就会触发特殊边界条件,保证TLE。"
赵志强不安地扭动身体:"王教授发现怎么办?"
"谁会怀疑标准测试数据?"周扬冷笑,"再说,只要他表现失常,之前的成绩就都显得可疑了,不是吗?"
两人的脚步声渐渐远去。陈默握紧了口袋里的U盘,心跳如鼓。他回到电脑前,迅速调出明天训练赛的往期题型——第三题很可能是动态规划或者图论。
"系统,我需要准备应对被动手脚的测试数据。"
【分析中...】
【建议:使用随机化算法绕过特定边界条件】
【风险:代码可读性下降,调试难度增加】
陈默咬了咬下唇。这又是一招"黑科技",但眼下似乎别无选择。
次日训练赛,陈默走进机房时立刻感受到异样的目光。几个平时还算友善的同学也避开了他的视线,角落里有人小声议论着什么。
"听说他之前的代码都是抄的..." "...外面请人写的吧..." "...怎么可能进步那么快..."
陈默沉默地坐到指定位置,插上U盘。系统立刻弹出警告:
【检测到异常网络活动】
【多台设备正在监控本机流量】
【建议启用高级加密协议】
比赛开始,前两题陈默顺利AC。第三题果然是一道图论题目,表面看是最短路径问题,但输入规模极大。陈默按照系统建议,写了一个加入了随机化因子的SPFA算法。
"提交。"
评测系统停顿了异常长的时间,然后返回——
【运行时间:2.01秒,TLE】
陈默心头一紧。正常情况这种优化应该能轻松通过才对。他再次检查代码,发现一个细微但致命的错误——随机种子设置不当导致在最坏情况下退化。
"系统,这怎么回事?"
【概率误差】
【重新调整参数后可修复】
【但比赛剩余时间不足】
陈默额头渗出冷汗。他尝试了三种不同的优化,但每次都会因为各种意想不到的原因失败——有时是超时,有时甚至直接报错。最终,这道题他只拿到30%的基础分。
排名公布:周扬第一,林雨晴第二,陈默滑落到第六。
"看来某些人的'天才'保质期很短啊。"周扬在众目睽睽下大声说道,"还是说,今天没人帮你写代码了?"
王教授走过来,眉头紧锁:"陈默,跟我来一下。"
办公室里,王教授打开陈默今天的提交记录:"解释一下,为什么你前两题用了相当高深的技巧,却在基础题上栽跟头?"
陈默喉咙发干:"我...在尝试新的解题方法,还没完全掌握。"
"周扬反映你可能有不当行为。"王教授直视陈默的眼睛,"我需要你诚实回答——之前的比赛是否完全由你独立完成?"
"当然!"陈默声音不自觉地提高,"我可以解释每行代码的思路!"
王教授沉默片刻,递给他一张纸:"下周就是省赛了。这是自愿退出申请表,你考虑一下。"见陈默要反驳,他抬手制止,"不是要你退出,只是...如果状态不稳定,团队赛会影响其他人。"
走出办公室,陈默发现林雨晴等在门外。她什么也没说,只是递给他一份打印材料——是今天第三题的标准解法,旁边密密麻麻写满了数学证明。
"你的方法太激进了,"她轻声说,"有时候最笨的方法反而最可靠。"
陈默刚要道谢,林雨晴已经转身离开,背影挺拔如竹。
回到宿舍,陈默把U盘重重拍在桌上:"你故意的对不对?明知道那些高级算法不稳定还让我用!"
屏幕闪烁几下,弹出冷静的文字:
【效率优先原则】
【失败原因:宿主未完全遵循指示】
【建议:加强记忆训练而非质疑系统】
"去你的效率优先!"陈默一拳砸在墙上,指关节传来尖锐的疼痛,"我要的不是死记硬背,是真懂!"
系统停顿了异常长的时间,然后显示:
【检测到情绪波动】
【重新评估教学策略】
【新方案:回溯基础训练】
【警告:此路径将显著减慢短期进步速度】
陈默深吸一口气:"就从最基础的动态规划开始,我要真正理解每个细节。"
接下来的几天,陈默仿佛回到了初学时期。系统不再提供炫酷的黑科技,而是强迫他反复练习最基础的背包问题、区间DP。每个状态转移方程都要手动推导三遍以上,连输入输出都要自己处理最原始的格式。
深夜的机房,陈默又一次调试失败的基础DP代码。屏幕上的bug如同顽固的敌人,怎么也不肯投降。
"为什么这个状态转移会越界?"陈默抓乱了头发。
出乎意料,这次系统没有直接给出答案,而是显示:
【自行调试是学习的重要组成部分】
【提示:打印中间变量观察变化】
陈默按照建议,一步步跟踪程序执行过程。三小时后,他终于发现了那个愚蠢的错误——循环边界条件少了个等号。修正后,程序顺利通过。
一种奇特的成就感涌上心头,比之前任何一次用高级技巧AC都要强烈。
"这才是我想要的。"陈默对系统说,"谢谢你。"
【学习效率回升】
【理解深度指数增长】
【能力值更新:
算法能力:71/100 (+6)
代码速度:65/100 (+7)
数学基础:70/100 (+8)
创新思维:77/100 (+3)】
省赛前三天,陈默正在推导一个复杂的树形DP问题,机房的门突然被推开。林雨晴抱着一摞书站在门口,显然没想到这么晚还有人。
"你...还在练习?"她的目光落在陈默满屏的草稿纸上。
陈默下意识挡住屏幕上的推导过程:"嗯,补基础。"
林雨晴犹豫了一下,走到相邻的机位坐下:"我缺个讨论伙伴。周扬他们只在乎排名,不在乎原理。"她拿出一本《组合数学》,"这道题我想了三天..."
陈默看向她指的地方,眼前一亮:"这个可以转化为二项式反演问题!"
"你也这么想?"林雨晴难得露出笑容,"但这里的模数不是质数..."
两人讨论到宿舍快锁门。分别时,林雨晴突然问:"你为什么突然改变风格?之前那些高级技巧很厉害啊。"
陈默摸了摸口袋里的U盘:"因为发现基础不够牢的话,再华丽的技巧也是空中楼阁。"
林雨晴若有所思地点头:"省赛见。"
回宿舍的路上,系统突然显示:
【检测到潜在威胁升级】
【周氏集团已介入省赛命题组】
【特别提醒:保持警惕但勿过度反应】
陈默握紧U盘。风雨欲来,但这次他准备好了——不是靠投机取巧,而是真正扎实的能力。
第四章
省赛当天,陈默站在考场外,呼出的白气在清晨的空气中凝结。他搓了搓手指,感受着U盘在口袋里的轮廓。过去两周地狱式的基础训练,让他对今天的比赛既期待又忐忑。
"紧张?"林雨晴不知何时出现在身旁,递给他一杯热豆浆,"喝了,手就不抖了。"
陈默接过纸杯,热度透过杯壁传到指尖:"谢谢。你看起来一点都不紧张。"
"装的。"林雨晴推了推眼镜,镜片上蒙着一层雾气,"我昨晚背组合公式到两点。"
周扬带着校队其他人走来,西装革履,与周围穿着休闲的选手格格不入。他瞥了陈默一眼,嘴角勾起一抹冷笑:"希望某些人今天别拖我们学校的后腿。"
赵志强附和道:"就是,要是因为一个人害得全校降档..."
"安静!"王教授打断他们,"记住,省赛是个人战,但你们的成绩会共同决定学校明年的资源分配。现在,检查装备入场。"
排队安检时,陈默悄悄插入U盘,屏幕显示:
【省赛任务:进入前20名】
【特别提示:今日将进行核心模块升级,部分功能可能暂时不可用】
【升级开始时间:比赛开始后120分钟】
"系统要升级?"陈默心头一紧,"整个比赛期间吗?"
【仅影响高级功能,基础分析保留】
【预计耗时:30-60分钟】
没等陈默多问,安检员已经催促他取下所有电子设备。他深吸一口气,走进考场。
考场是个巨大的体育馆,数百台电脑排列成整齐的方阵。陈默找到自己的位置——C区27号,恰好夹在两个外校选手之间。左边是个戴耳钉的男生,正飞速敲击键盘测试手感;右边是个扎马尾的女生,已经画起了某种图形结构的草图。
大屏幕开始倒计时:5分钟准备时间。
陈默登录系统,快速测试了编程环境和键盘手感。突然,一条私信弹出:
"听说你擅长数据结构?C题有惊喜。——C区26号"
陈默侧目,耳钉男对他眨了眨眼。这是心理战?他刚想回复,比赛开始的铃声响起。
五道题目同时解锁。陈默快速浏览一遍,心头一沉——A题是复杂的字符串处理,B题看似简单却可能隐藏陷阱,C题...正是周扬最擅长的网络流变形。
"系统,建议开题顺序。"
【推荐:B→A→D→C】
【警告:C题存在针对性测试数据】
陈默决定先攻B题。题目要求在一个特殊约束的矩阵中找出所有满足条件的子矩形。看起来可以暴力枚举,但输入规模暗示需要O(n²)以下的算法。
他刚写下第一个循环,余光瞥见C区26号已经提交了C题,并且——AC了!这才开始七分钟。周围响起一阵低声惊叹。
"别分心。"陈默对自己说,继续专注B题。渐渐地,他看出问题可以转化为二维前缀和与单调栈的结合。四十分钟后,他的优化解法通过所有测试点。
【B题:AC,当前排名41/300】
A题是字符串匹配的变种,陈默用了系统教过的后缀自动机思想,但做了简化以适应时间限制。又一个小红旗出现在计分板上。
【A题:AC,排名29/300】
就在这时,屏幕右下角突然弹出提示:
【系统升级开始】
【高级功能暂停服务】
【预计恢复时间:11:20】
陈默看了眼时钟——9:50。至少一个半小时要完全靠自己了。他下意识摸向口袋里的U盘,触到一片滚烫,连忙缩回手指。
转向D题,这是个图论问题。陈默读了两遍才理解题意——需要在保证连通性的前提下,删除尽可能多的边。这看起来像是最小生成树的变种,但约束条件更加复杂。
他尝试了几种经典算法都不完全适用。时间一分一秒过去,排名逐渐下滑到50开外。周扬已经AC了四题,暂列第一;林雨晴也在前二十。
"冷静..."陈默闭上眼睛,回想系统训练时的情景。突然,一个想法闪过——如果将每个约束条件看作一种状态,能否用状态压缩动态规划来解决?
他迅速起草新思路,将原本复杂的图结构转化为状态转移。经过几次调试,一个精巧的多维状态压缩DP诞生了。提交时,他的手微微发抖。
【D题:AC,运行时间0.33秒】
【排名17/300】
陈默长舒一口气,看向时钟——11:15。系统还没恢复,但已经挺过了最困难的阶段。
C题是网络流,陈默决定暂时跳过,先看E题——一道需要数学直觉的组合题目。读题时,他注意到前排的周扬频繁回头看他,表情从得意逐渐变为困惑。
E题的描述极为简洁:给定n和k,计算某种特殊排列的数目模1e9+7。陈默尝试了几个常见模型都无果,直到联想到前几天和林雨晴讨论的二项式反演。
草稿纸上很快写满推导过程。经过近一小时的奋战,陈默找到了将问题转化为容斥原理与生成函数结合的方法。代码一气呵成,运行——
【E题:AC,排名9/300】
全场只有5人AC了这道题!陈默忍不住轻呼一声,引来监考老师的目光。一位白发教授走到他身后,仔细查看了他的代码,微微点头。
时钟指向12:50,比赛还剩一小时。陈默决定挑战C题。就在这时,系统提示突然恢复:
【升级完成】
【新增功能:算法模式识别】
【检测到C题存在恶意测试数据】
【建议解法:预流推进算法+特殊随机化】
这正是陈默最近苦练的基础之一!他按照系统提示,谨慎地实现了这个相对冷门的算法,并加入了几处针对性优化。
"提交。"
【C题:AC,运行时间0.41秒】
【排名6/300】
最后三十分钟,陈默不断微调试图再提升名次,但前几名的分数咬得很紧。周扬已经AC了全部五题,暂列第一;林雨晴在最后一刻也AC了E题,冲到了第十五名。
比赛结束的铃声响起,所有屏幕同时锁定。陈默靠在椅背上,感受着肾上腺素逐渐消退的疲惫。最终排名:
周扬 — 500分
李泽言 — 500分(用时更长)
陈默 — 500分(罚时较多)
林雨晴 — 490分
"省队选拔规则:"主持人宣布,"前五名直接入选,6-20名中每校至多两人,按分数排序。"
这意味着陈默和林雨晴都进入了省队!陈默看向林雨晴,她难得地露出了灿烂的笑容。
周扬走过来,脸上带着假惺惺的微笑:"恭喜啊,没想到你这种水平也能进省队。"他压低声音,"全国赛可没这么简单了,我已经联系了'零点'的朋友特别关照你。"
"零点?"陈默一愣,随即想起系统曾提过的黑客组织。
周扬似乎后悔说漏嘴,匆匆离开。陈默立刻询问系统:"零点是什么?"
【高危信息】
【零点:竞赛黑产组织,专门提供定制化作弊工具】
【关联警告:检测到周扬设备存在异常数据包】
林雨晴走过来打断了陈默的思绪:"听到周扬说什么了吗?"
"没什么,就是不服气。"陈默暂时隐瞒了零点的事,"你最后那道题怎么想到用莫比乌斯反演的?"
两人边讨论边走向休息区,没注意到看台上一个戴鸭舌帽的中年男子正用望远镜观察陈默,手中的平板上显示着一段代码分析报告,标题是《量子特征代码检测记录》。
颁奖仪式上,省队教练司徒玄宣布了全国赛的备战计划。这位前IOI金牌得主目光如炬,在说到"学术诚信"时特意扫视了周扬和陈默。
回校的大巴上,陈默插上U盘查看能力变化:
【能力值更新:
算法能力:82/100 (+11)
代码速度:78/100 (+13)
数学基础:85/100 (+15)
创新思维:89/100 (+12)】
【全国赛任务:进入前30名】
【警告:检测到外部监控信号,建议启用反追踪】
陈默关闭提示,望向窗外飞驰而过的景色。短短几个月,他从差点被劝退的菜鸟变成了省队选手,但周扬的威胁和那个神秘的"零点"组织,像一片乌云笼罩在前路上。
林雨晴在过道对面的座位安静地看着书,阳光透过车窗在她侧脸投下斑驳的光影。陈默突然觉得,只要有这样的队友在,再大的困难也不那么可怕了。
口袋里的U盘突然震动了一下,屏幕自动亮起,显示出一行之前从未见过的红色文字:
【警告:量子同步率超过阈值】
【原定任务变更】
【新优先级:阻止"零点计划"】
【时间所剩无几】
第五章
寒假第一天,陈默站在省城图书馆前,呼出的白气在零下五度的空气中凝结。他跺了跺冻僵的脚,看着手机屏幕上林雨晴发来的定位——三楼西北角"量子计算"专区。
"迟到了十七分钟。"林雨晴头也不抬地说。她面前摊开着四本英文原版书,笔记本上密密麻麻的公式中间画着一个醒目的莫比乌斯环。
陈默刚要解释公交车抛锚的事,口袋里的U盘突然剧烈发烫。他强忍异样坐下,假装整理背包时偷偷瞥了一眼——屏幕自动亮起,血红色的警告闪烁:
【检测到量子特征码】
【距离:3米内】
【来源:林雨晴的笔记本】
"你在研究莫比乌斯环?"陈默尽量让声音保持平稳。
林雨晴合上《量子算法导论》,镜片后的眼睛微微眯起:"上周WC报名开始了。我想试试这个模型能否用在组合优化上。"她突然压低声音,"你口袋里那个会发热的东西,是不是刻着二进制编码的莫比乌斯环?"
陈默的血液瞬间凝固。U盘在口袋里烫得像块烙铁。
"别紧张。"林雨晴翻开笔记本最后一页,露出张老照片:一群科研人员站在粒子对撞机前,居中老者手中的白板上画着与U盘完全相同的标志,"我爷爷曾是'量子计算黎明计划'的负责人。二十年前那场事故后,所有实验数据都被封存了..."
"什么事故?"陈默脱口而出。
"简单说就是——"林雨晴的笔尖停在照片某个年轻研究员脸上,"他们创造了会'学习'的量子代码。后来..."她的解释被手机铃声打断。WC组委会发来了参赛确认函:三天后开赛。
返程的地铁上,U盘终于冷却下来,屏幕显示:
【信息管制解除】
【林雨晴安全等级:绿色】
【新功能解锁:算法融合】
【警告:每次使用消耗5%脑神经耐受值】
陈默点开说明视频,惊得差点摔了手机——画面上展示着如何将网络流与线段树动态结合,创造出实时调整容量的新型算法。但演示结束时,系统用红色大字警告:
【耐受值归零将导致永久性认知障碍】
WC赛场设在北方冰雪覆盖的集训基地。开赛前一晚,陈默在测试机位时发现周扬与几个外校选手鬼鬼祟祟地交换U盘。他刚想靠近,系统突然警报:
【检测到零点组织的签名代码】
【特征:动态混淆编译器】
【作用:自动优化低效算法】
"果然作弊..."陈默正要报告组委会,肩膀被人拍了一下。林雨晴捧着两杯热可可摇头:"没用的,那种工具在法律灰色地带。"
第一试是传统命题,压轴题竟是莫比乌斯反演与动态规划的结合。陈默刚构思出框架,系统突然蓝屏:
【紧急升级:离线模式启动】
【剩余辅助功能:0%】
冷汗瞬间浸透后背。没有系统提示,没有优化建议,只有三个半小时和一道五星难度的题目。
"就当检验训练成果。"陈默深吸一口气,手指落在键盘上。奇妙的是,那些曾被系统强行灌输的知识,经过数月苦练竟已融会贯通。当他把林雨晴昨天讨论的数学变换编入程序时,评测系统亮起绿灯:
【运行时间:0.47秒,AC】
最终陈默排名全国第18,林雨晴第22。周扬则异常地位列第9——比他在省赛的表现突飞猛进。
"恭喜。"颁奖晚宴上,周扬晃着香槟杯靠近陈默,"听说你比赛时系统故障了?真可惜。"他意有所指地眨眨眼,"我用的新工具就很稳定。"
陈默猛然抓住他的手腕:"零点给了你什么?"
"只是商业培训产品。"周扬甩开手,露出腕部若隐若现的电子纹身——一个由0和1组成的蛇形图案,"全国赛见分晓。"
亚太赛在新加坡举行线上同步赛。最特殊的环节是"交互题"——选手程序需与评测机实时对话。
"这道题..."林雨晴盯着样题皱眉,"需要同时在线段树上做蒙特卡洛采样。"
陈默的U盘突然投射出全息界面:
【算法融合建议:将量子随机行走与zkw线段树结合】
【预计效率提升300%】
【神经负荷:4级(剧烈头痛)】
"太危险了!"林雨晴看到警告后按住陈默的手,"我们可以用传统方法..."
"但这是测试新功能的最佳机会。"陈默咬牙激活了融合模式。
刹那间,他的视野被撕裂成两部分:左眼看到正常的代码编辑器,右眼却浮现出量子比特在希尔伯特空间中跃迁的奇异景象。手指不受控制地敲击出他从未学过的语法——某种介于经典编程与量子指令之间的混合体。
"提交。"
评测系统沉默了整整十秒,最终返回:
【运行时间:0.07秒】
【创新加分:30%】
【总排名:亚太区第11名】
"太神奇了!"监考老师凑近屏幕,"这代码风格我从没见过..."
陈默却瘫在椅子上,鼻血滴落在键盘上。恍惚中,他看到某个裁判对着耳麦低语:"发现疑似量子特征代码,坐标C区27号。"
全国赛前夜 回国后的庆功宴上,组委会主任司徒玄宣布了震撼消息:"今年全国赛采用'对抗性评测'——选手代码将互相挑战,漏洞百出的程序会被其他选手攻破。"
人群哗然。陈默注意到司徒玄的目光始终锁定自己,更诡异的是,这位六十岁老教授的袖扣竟是两个微缩莫比乌斯环。
深夜机房,陈默复盘APIO的异常状况时,U盘突然强制弹出全息投影——一个与陈默七分相似的虚拟人影:
【紧急通讯】
【零点计划已激活最终阶段】
【目标:在全国赛窃取你的量子特征码】
【我必须休眠以避免被探测】
【记住:真正的算法在...】
影像突然中断。屏幕上最后闪过一张模糊的电路图,角落里标注着"黎明计划:林远山"——正是林雨晴爷爷的名字。
"陈默?"林雨晴的声音从门口传来,"我查到周扬父亲的公司上个月采购了..."她的话戛然而止,盯着尚未消散的全息残影,"那是...量子全息投影?"
U盘在两人注视下自动加密了所有文件,最后显示:
【全国赛任务变更:生存优先】
【信任名单更新:林雨晴(权限等级A)】
【警告:司徒玄可能与零点有关联】
窗外,一架无人机悄然掠过。它的红外镜头牢牢锁定着机房内的两个身影,将实时画面传送到城市另一端某个布满电子设备的密室。周扬看着屏幕冷笑,他身后的阴影里,一个与司徒玄长相酷似的中年男子正在调试某种形似脑波接收器的装置。
"量子同步率多少?"男子头也不回地问。
"APIO时达到31%,"周扬调出一段代码,"但核心加密协议还没破解。"
男子满意地摩挲着装置上的莫比乌斯环标志:"足够了。全国赛那天,我们会把'Code Master'从他脑子里挖出来。"
第六章
全国赛的赛场弥漫着一种特殊的静电感,三百台电脑同时运转发出的低频嗡鸣像某种巨大生物的心跳。陈默坐在C区13号机位,手指悬在键盘上方三毫米处——这是他在省赛养成的习惯,为了减少按键时的微小延迟。
"选手准备。"广播响起的同时,陈默做了一个让系统都意外的动作——他主动关闭了U盘的实时提示功能。
"今天我想靠自己。"他对着空气轻声说,更像是说给自己听。
大屏幕亮起题目列表的刹那,整个赛场响起一片倒抽冷气的声音。五道题全是新题型,连样例输入输出都没有。陈默快速扫过题目梗概:A题字符串匹配变种,B题三维几何计算,C题...
"动态规划。"陈默的嘴角不自觉地上扬。这正是他过去三个月每天训练到凌晨两点的领域。
手指触碰键盘的瞬间,一种奇异的感觉涌上心头——没有系统冰冷的效率提示,没有优化建议,但他的思维却异常清晰。A题的字符串匹配需要改造KMP算法,他几乎不假思索地在纸上画出next数组的变形结构。
"这感觉..."陈默敲击键盘的速度越来越快,"就像一直戴着矫正器的人突然摘掉它,发现自己的牙齿本来就很整齐。"
四十七分钟后,他的改良KMP以0.19秒的运行时间AC了A题。实时排名跃至前二十。余光瞥见右前方的周扬正皱眉盯着屏幕——这位"天才"竟然还卡在A题。
"有趣。"林雨晴的声音从左侧传来。她不知何时已经AC了A题,正浏览陈默的公开代码,"你的next数组优化很漂亮,完全跳过了系统化的推导过程。"
陈默一愣:"你能看出来?"
"上个月你的代码还像教科书一样规整。"林雨晴推了推眼镜,"现在像在看艺术品。"
这种赞美比任何系统提示都更令人振奋。陈默转向B题,一道需要计算三维凸包表面积的特殊变种。系统曾经教过他通用的三维几何模板,但此刻他选择另辟蹊径——将问题降维到二维平面处理。
"如果忽略Z轴在特定条件下的微小变化..."陈默在草稿纸上画着剖面图,突然灵光一现,"可以转化为二维旋转卡壳问题!"
这个大胆的简化让他节省了70%的计算量。提交时,他的手微微发抖——这是完全由他独立设计的重要优化。
【B题:AC,当前排名第7】
赛场另一端突然传来椅子翻倒的声音。周扬站了起来,脸色阴沉得可怕。陈默瞥了眼实时排名——周扬刚刚AC了A题,排名第89。
"作弊工具失效了?"林雨晴低声推测。
陈默摇头:"更可能是新型工具需要适应新题型。"他指着周扬屏幕上突然开始飞速滚动的代码,"看那个编码风格,完全不像他平时的写法。"
果然,接下来的两小时里,周扬以一种反常的速度连续AC了三道题,排名火箭般蹿升至第一。而陈默稳扎稳打,用自己设计的"状态压缩DP+剪枝"解决了C题,保持在第五名。
午餐时,周扬故意端着餐盘经过陈默身边:"看来没有'那个东西'帮忙,你也就这种水平了?"
陈默慢条斯理地咽下食物:"至少我知道自己写的每行代码在干什么。"他直视周扬的眼睛,"你的三维凸包用了八叉树优化对吧?但标准八叉树在10^6数据量下会MLE,除非...你用了某种内存回收黑科技?"
周扬的餐叉当啷一声掉在盘子里。陈默说的正是"零点"组织提供的核心作弊技术之一。
"运气猜中而已。"周扬强作镇定地离开,背影却显出一丝慌乱。
林雨晴若有所思:"你真的从代码风格就看出他用了八叉树?"
"不。"陈默擦掉不知不觉流出的鼻血,"但他解题时间比理论最优值还快15%,这只能用非经典数据结构解释。"
下午的压轴题公布时,全场哗然——这是一道需要实时维护动态森林连通性的题目,输入数据量高达2×10^6,标准并查集肯定超时。
陈默的U盘突然发烫,自动弹出一条消息:
【紧急:检测到异常信号干扰】
【建议解法:ETT+分块】
【但系统即将离线...】
文字闪烁几下后消失了。陈默尝试重新连接,只得到刺耳的电流杂音。他望向四周,几个监考老师正在检查赛场路由器,而周扬的座位旁站着一个穿电信制服的技术人员。
"系统被干扰了..."陈默的太阳穴突突直跳,鼻血滴在键盘上。但下一秒,他做了一个令自己都惊讶的动作——拔出U盘放进口袋,然后撕下一页空白草稿纸。
"既然没有退路..."铅笔在纸上沙沙作响,陈默开始从最基础的性质分析题目。动态森林...连通块计数...需要支持合并和查询...
"可以用反向思维!"他突然拍桌而起,引来监考老师的目光。与其维护复杂的动态结构,不如记录每次操作的影响因子,最后统一计算。
手指在键盘上飞舞,陈默创造性地将简单的链表结构与哈希结合,辅以巧妙的懒标记策略。代码行数比标准解法多30%,但理论复杂度更低。
"提交。"
评测系统沉默了异常长的时间,最终返回:
【运行时间:1.88秒,AC】
【当前排名:5】
白发苍苍的首席裁判走到陈默身后,盯着屏幕看了足足一分钟:"年轻人,这种解法我在三十年的裁判生涯中从未见过。"他指着那段看似笨拙的链表操作,"但这种简洁的美感...只有真正理解算法本质的人才能做到。"
第一天比赛结束,周扬凭借异常的表现位列第一,陈默第五,林雨晴因在B题花费过多时间排名十二。走出赛场时,林雨晴递给陈默一包纸巾:"你的鼻血...没关系吧?"
"只是用脑过度。"陈默擦着血迹,突然笑了,"但很值得。今天我才真正感觉到...那些知识变成了我自己的。"
夜色渐深,参赛者们三三两两在校园里讨论题目。陈默和林雨晴坐在湖畔长椅上复盘代码,远处周扬正与几个陌生人在阴影中交谈。
"那是'零点'的人。"林雨晴眯起眼睛,"他们在调试某种设备。"
陈默顺着她的目光看去——一个技术人员手中的仪器正闪烁着诡异的蓝光,形状酷似脑波接收器。更令人不安的是,赛场总监司徒玄就站在不远处,对此视若无睹。
"明天小心些。"林雨晴递给陈默一张纸条,"我分析了周扬今天的代码,这个函数结构绝对不是人类写的。"
纸条上画着一个蛇形循环结构,旁边标注着"量子特征?"。陈默心头一震——这与U盘曾警告过的"零点签名代码"惊人相似。
回到酒店,陈默尝试重启系统,只得到断断续续的信号:
【危险...量子嗅探器...】
【明天...独立应战...】
【信任...林...】
文字最终消失,U盘陷入死寂。陈默将它放在床头,突然意识到自己竟然没有想象中恐慌。窗外,一轮满月悬在夜空,清冷的月光洒在桌面的草稿纸上——那上面全是他这半年来写过的算法笔记,每一页都密密麻麻地写满了推导过程和优化思路。
"足够了。"陈默对自己说。他翻开笔记本新的一页,开始为明天的对抗性评测设计策略。笔尖与纸张摩擦的沙沙声里,某个念头越来越清晰:
真正的Code Master,从来都不是那个U盘。
第七章
全国赛第二天的晨光还未完全驱散夜色,陈默就已经站在赛场外。他摩挲着口袋里的U盘——从昨晚开始,它就再没任何反应,金属外壳冰冷得像块普通铁片。
"备用方案准备好了吗?"林雨晴悄无声息地出现在身旁,递来一杯冒着热气的黑咖啡。
陈默接过纸杯,热度透过杯壁传到指尖:"只能靠基础算法硬拼了。"
林雨晴突然压低声音:"我查了司徒玄的学术论文,他在二十年前就研究过量子代码加密。"她亮出手机里的一张模糊照片,某个仪器上赫然刻着与U盘相同的莫比乌斯环标志。
赛场大门开启的嗡鸣打断了谈话。走进场馆的瞬间,陈默的后颈汗毛倒竖——整个赛场布满了崭新的信号增强器,每个参赛者座位下方都多出了一个巴掌大小的黑色设备。
"说是为了保障比赛公平性。"林雨晴冷笑,"真讽刺。"
陈默刚坐下,U盘突然剧烈震动起来,烫得他大腿发疼。他假装系鞋带,偷偷看了一眼——
【极端危险!量子嗅探器已激活】
【所有功能强制关闭】
【生存建议:仅使用基础算法】
文字闪烁两下后彻底消失,U盘指示灯完全熄灭。陈默的心沉到谷底,但没时间多想了,开赛铃声已经响起。
大屏幕亮起今日赛题:三道超高难度的对抗性编程题。每道题提交后,其他选手可以针对性地设计测试数据攻击你的程序。最终得分取决于程序本身的正确性和防御能力。
"完美的作弊环境..."陈默喃喃自语。这种赛制下,提前知道标准答案的人可以轻松设计出无法攻破的完美解法。
A题是一道需要动态维护多重集合的难题。陈默刚读完题,右前方的周扬就已经开始敲代码——这速度快得离谱,就像早就知道题目一样。
"果然有猫腻。"陈默强迫自己集中注意力。他决定采用最稳妥的策略:用平衡树维护集合,虽然效率不是最高,但防御性好。
手指刚碰到键盘,一阵刺耳的电流声突然钻入耳膜。陈默猛地抬头,发现那个穿电信制服的技术人员正在自己座位旁调试设备,手里拿着一个形似脑波仪的古怪装置。
"同学,检查网络连接。"技术人员面无表情地说,但陈默分明看到他手腕内侧的蛇形电子纹身——"零点"组织的标志。
A题提交后,陈默的排名暂列第八。周扬毫无悬念地位居第一,而且已经AC了前两题。更诡异的是,当其他选手尝试攻击周扬的程序时,系统都返回"无法穿透防御"。
"这不合理。"林雨晴在午餐时拿出平板,"我调取了他公开的代码框架,和五年前一个俄罗斯选手的开源项目相似度达82%。"她指着几处关键函数,"连变量名都没改。"
陈默用叉子戳着餐盘里的食物:"组委会怎么说?"
"驳回。"林雨晴的指甲在平板上留下几道白痕,"司徒玄亲自下的结论,说是'合理借鉴'。"
下午的比赛开始前,周扬特意绕到陈默座位旁:"听说你的'外挂'坏了?"他晃了晃手腕上的电子纹身,"我们'零点'的技术可是很稳定的。"
陈默的拳头在桌下攥紧,但表面平静如水:"依赖工具的人永远成不了真正的程序员。"
周扬脸色一沉,转身时故意撞翻了陈默的水瓶。水洒在键盘上,引起一阵小小的骚动。趁裁判处理事故时,陈默注意到周扬悄悄将一个U盘插入了主机。
"他要现场作弊!"陈默刚想举报,却发现自己没有证据。更糟的是,水渍导致他的空格键失灵了。
压轴题公布时,全场哗然——这是一道需要实时生成对抗样本的递归神经网络题,难度远超普通高中生水平。陈默读了三遍才理解题意,而周扬已经在飞速敲代码。
"系统,如果你还能听见..."陈默在心中默念,同时插入U盘。令人惊喜的是,屏幕竟然亮起了微弱的蓝光:
【紧急模式:算法融合可用】
【但神经负荷将达到8级(濒危)】
【成功率:37%】
陈默没有犹豫:"启用。"
刹那间,世界天旋地转。他的左眼看到正常代码,右眼却浮现出神经网络在希尔伯特空间中的量子态叠加。手指不受控制地敲出一段混合了c++和量子指令的诡异代码,连他自己都看不懂。
"坚持住..."陈默感觉温热的液体从鼻腔涌出,滴在键盘上形成小小的血洼。视野边缘开始出现黑色斑点,但他仍死死盯着屏幕。
【提交成功】
【警告:神经负荷超标】
【系统即将强制休眠】
最后的意识里,陈默看到自己的程序以0.11秒的成绩AC,排名瞬间飙升至第二。而周扬的程序在对抗环节竟然崩溃了——陈默模糊地意识到,自己无意中写的某个量子指令可能干扰了对方的作弊工具。
"同学!同学!"裁判的声音仿佛从很远的地方传来,"你需要医疗协助吗?"
陈默想回答,却发现舌头重得像铅块。恍惚中,他看到林雨晴冲过来扶住自己摇摇欲坠的身体,而赛场另一端,周扬正愤怒地砸键盘,那个"技术人员"匆忙跑去帮忙。
"他的代码...有漏洞..."陈默用尽最后力气抓住林雨晴的手,"对抗样本...在递归深度超过...1024时..."
话未说完,黑暗吞噬了一切意识。
当陈默再次睁眼,首先看到的是医院苍白的天花板。窗外已是深夜,林雨晴蜷缩在病房角落的椅子上睡着了,手里还攥着一沓代码纸。
陈默试着动了动手指,发现床头柜上放着那枚U盘。他艰难地伸手去够,却听到"啪嗒"一声——U盘自动裂开,露出内部精密的量子芯片结构。一道全息投影浮现在空中:
【核心功能永久损坏】
【但宿主已达标】
【最终数据:
算法能力:94/100
代码速度:89/100
数学基础:96/100
创新思维:99/100】
【记住:真正的算法在...】
投影闪烁几下,彻底消失了。陈默怔怔地看着手中报废的U盘,一种奇怪的感觉涌上心头——不是失落,而是释然。
"你醒了?"林雨晴揉着眼睛坐直身体,"医生说你是过度用脑加上轻微神经灼伤。"她递来一张纸,"不过值得——你压轴题的解法被司徒玄点名表扬了。"
陈默接过纸张,上面是官方发布的今日赛况:他因在医院无法完成最后答辩环节,总分暂列第三;周扬虽然保住了第一,但被特别标注"解法相似度过高,创新分扣减";林雨晴则凭借严谨的数学证明升至第五。
"还有更精彩的。"林雨晴调出一段视频:赛后采访中,当记者问及递归深度限制时,周扬竟然支支吾吾答不上来,完全不像写出那种代码的人。
"他的作弊工具被我无意中干扰了。"陈默轻声解释,同时惊讶地发现自己能清晰回忆起那段混合代码的每个细节——那些知识已经真正属于他了。
林雨晴突然压低声音:"司徒玄刚才来过了,留下这个。"她展示手机里的一张照片:老教授的钢笔压在成绩单上,恰好圈出明天最终答辩的题目——《量子算法在对抗性编程中的应用》。
"这是暗示。"陈默坐起身,头脑异常清醒,"他知道U盘的事,也知道'零点'在做什么。"
林雨晴从包里取出一本破旧的笔记本:"我爷爷的研究日记。最后一页写着——'真正的算法不在芯片中,而在人类突破极限的思维里'。"
窗外,一轮满月悬在夜空。陈默握紧报废的U盘,突然明白明天该做什么了。没有系统,没有黑科技,只有最纯粹的、属于他自己的——Code Master。
第八章
决赛日清晨,陈默站在医院门口,晨露的气息钻入鼻腔。他摸了摸胸前的参赛证,口袋里只剩下U盘的外壳——里面的量子芯片昨晚已被他取出,现在正静静躺在病床抽屉里,和一张写着"谢谢"的纸条在一起。
"感觉怎么样?"林雨晴递给他一杯热气腾腾的豆浆,"医生说你的神经损伤..."
"没事。"陈默接过纸杯,热度透过指尖传来,"反而觉得...头脑从未如此清醒。"
他们搭乘组委会的专车前往赛场。路上,林雨晴展示了她通宵分析的成果:"周扬的作弊工具依赖一个漏洞——当输入数据包含特定模式的质数时,他的编译器会自动替换成最优解。"
她从笔记本撕下一页递给陈默:"记住这个数列。如果今天有相关题目..."
陈默接过纸条,上面的数字排列成一个奇特的莫比乌斯环形状。他刚要开口,车子猛地刹住——赛场到了。
今天的场地布置得像个学术报告厅,每位决赛选手要上台讲解自己的解题思路并接受质询。陈默注意到评委席上的司徒玄正摩挲着袖口的莫比乌斯环袖扣,而周扬站在角落,正和一个穿黑西装的男人低声交谈。
"那是'零点'的技术总监。"林雨晴小声说,"看来他们很紧张。"
比赛开始前,工作人员分发最终题目——《量子算法在对抗性编程中的应用》。全场哗然,这明显超出了中学生竞赛范畴。
"故意的..."陈默握紧拳头。题目明显针对他昨天的表现,也给了周扬背后组织展示"实力"的机会。
大屏幕开始倒计时:三小时限时编程。
陈默深吸一口气,翻开题目细则。这是一道需要设计抗干扰通信协议的前沿问题,标准解法应该涉及量子纠错码。但当他读到第三遍时,一个大胆的想法突然闪现——
"最笨的方法有时最可靠。"
林雨晴的声音在脑海中回响。陈默抓起笔,在草稿纸上画出一个完全不同于常规思路的模型:用最基础的数组和链表组合,模拟量子态的叠加特性。
"如果每个节点同时记录多个状态..."他的笔尖越动越快,"再通过动态剪枝消除矛盾路径..."
这个方案看起来笨拙无比,但陈默直觉它蕴含着某种简洁的美。然而当他开始编码时,一阵剧痛突然刺穿太阳穴——昨天神经灼伤的后遗症发作了。
汗水模糊了视线。陈默咬牙坚持写了三十行代码,却发现一个致命缺陷:他的方法在极端情况下会退化为暴力搜索。
"时间还剩两小时。"广播无情地提醒。
陈默的指尖悬在键盘上方,颤抖着。就在这时,一张小纸条从旁边滑过来。林雨晴假装调整显示器角度,对他眨了眨眼。
纸条上是几行简洁的数学公式,标注着"动态剪枝定理"。陈默瞳孔骤缩——这根本不是教科书上的内容,而是一种全新的、将组合数学与信息论结合的原创理论!
公式下方还有一行小字:"爷爷的未发表成果,适合你的结构。"
仿佛一道闪电劈开迷雾。陈默抓起笔,在原有框架中融入这些公式,代码突然拥有了生命般自我优化。原本笨拙的数组链表结构,现在通过精妙的剪枝策略,效率呈指数级提升。
"提交最终代码。"
陈默按下回车时,距离截止只剩23秒。他的程序以令人咋舌的0.07秒完成所有测试用例,同时生成了一份详尽的抗干扰分析报告。
评委席一阵骚动。司徒玄亲自走到陈默的电脑前,仔细检查了每行代码。"令人印象深刻,"老教授的声音有些颤抖,"你用了最基础的数据结构,却达到了量子算法的理论效率。怎么想到的?"
"我..."陈默看向林雨晴,她微微点头,"我意识到真正的算法不在芯片中,而在..."他指了指自己的太阳穴,"人类突破极限的思维里。"
司徒玄的眼中闪过一丝异样的光芒。他正要说什么,赛场另一端突然爆发争吵——周扬的程序在对抗测试中崩溃了,而他无法解释核心算法的原理。
"这...这是标准量子编码!"周扬脸色煞白地争辩。
"是吗?"一位评委冷冷道,"那你为什么连最基本的叠加原理都解释不清?"
穿黑西装的男人快步走向评委席,却被保安拦住。混乱中,陈默看到他从公文包里掏出一个酷似脑波仪的装置,正对着自己的方向。
"小心!"林雨晴猛地拉开陈默。
几乎同时,那装置发出刺眼的蓝光。所有人都以为要发生什么可怕的事,但什么也没发生——除了陈默口袋里U盘外壳突然变得滚烫。
司徒玄大步走向那个"零点"成员,一把夺过装置:"量子嗅探器?在学术场合使用这种工业间谍工具,你们'零点'真是越来越下作了。"
全场哗然。摄像机转向这一幕,周扬作弊的证据通过直播传遍全国。他的父亲——那位著名的科技公司总裁——在观众席上脸色铁青地离场。
颁奖环节前,陈默在洗手间遇到了周扬。昔日傲慢的对手此刻眼眶发红,像头困兽。
"你赢了,满意了?"周扬哑着嗓子说,"但你以为这就结束了吗?'零点'只是..."
"我不在乎。"陈默打断他,"我从没把你当对手。"他转身离开,又停住脚步,"对了,1024不是随机数——是你作弊工具的递归栈大小。"
回到赛场,司徒玄正在公布最终成绩:陈默第一,林雨晴第二,来自杭州的一名选手第三。周扬被取消资格。
当陈默站上领奖台时,老教授递来的不仅是金牌,还有一封盖着国徽的信封。"国家预备队邀请函,"司徒玄低声说,"顺便,你那位小朋友的祖父,曾经是我的导师。"
晚宴上,陈默和林雨晴溜出来,坐在星空下的草坪上。陈默掏出U盘外壳:"它今天又发热了,好像在保护我免受那个嗅探器伤害。"
林雨晴从包里取出那本破旧笔记:"爷爷最后一页写着,'如果有一天你遇到携带莫比乌斯环的人,告诉他:黎明终将到来'。"
话音刚落,U盘突然投射出一段全息影像——一个与陈默有七分相似的中年男子,穿着未来风格的实验室制服。
【最终讯息解锁】
【我是2045年的你】
【量子计算寒冬即将到来】
【林雨晴的祖父发现了阻止方法】
【但成果被'零点'窃取】
【这个U盘是我们最后的希望】
【现在它已完成使命...】
影像闪烁几下,化为无数光点消散在夜风中。陈默和林雨晴久久沉默,各自握着半个莫比乌斯环的标记。
"所以..."林雨晴先开口,"你是未来世界的救世主?"
陈默仰头看向星空:"不,我只是个刚学会独立编程的高中生。"他转向林雨晴,"不过既然未来需要...我们可以一起研究下你爷爷的笔记?"
林雨晴笑了,月光在她的镜片上投下斑驳光影。远处,司徒玄站在窗前望着这对年轻人,手中把玩着一个与陈默U盘完全相同的装置——只是它的指示灯还亮着蓝光。
"老师,您是对的。"老教授对着空气喃喃自语,"人类的思维,终究比任何量子计算机都更强大。"
夜风拂过草坪,卷起几页写满公式的草稿纸。其中一页上,陈默和林雨晴共同设计的算法草图旁,画着一个完整的莫比乌斯环,里面写着一行小字:
"Code Master Ver 1.0——人类版。"
第九章
国家集训队报到第一天,陈默站在清华园的训练基地前,秋日的阳光透过梧桐叶在他肩头投下斑驳的光影。口袋里不再有那个发烫的U盘,取而代之的是一本厚厚的笔记本——封面上画着他和林雨晴共同设计的莫比乌斯环标志。
"Code Master Ver 1.0,人类版。"陈默轻声念出扉页上的字迹,嘴角不自觉上扬。
"发什么呆呢?"林雨晴拖着行李箱走来。
训练基地的走廊两侧挂满了历代IOI金牌选手的照片。陈默在一张泛黄的照片前驻足——1995年中国队,站在最旁边的年轻助理教练赫然是当年的司徒玄。
"看来你和司徒教授的缘分早就注定了。"林雨晴顺着他的目光看去。
"陈默!"浑厚的嗓音从身后传来。司徒玄本人正站在会议室门口,袖口的莫比乌斯环袖扣闪着暗光,"进来做个测试。"
测试题只有一道:在10分钟内编写一个能通过所有测试用例的快速排序算法。对国家队选手来说,这简直像让大学生背乘法口诀。
陈默刚敲完最后一行代码,司徒玄突然拔掉了电源。"现在,"老教授递来一支粉笔,"在黑板上默写刚才的代码,并推导最坏时间复杂度。"
陈默的手指微微一顿,随即流畅地在黑板上书写起来。没有IDE,没有自动补全,只有纯粹的算法思维在粉笔与黑板的摩擦中流淌。当他推导到递归深度与比较次数的关系时,司徒玄的眼中闪过一丝满意的光芒。
"不错,"老教授递来一张日程表,"但真正的考验在后面。"
中国国家队选拔赛(CTT)的赛场设在哈尔滨冰雪大世界旁的特殊机房。零下二十五度的严寒中,陈默看到赛场外墙结着厚厚的冰凌,而室内温度却被刻意调高到三十度——这是组委会设计的极端环境测试。
"环境干扰也是比赛的一部分。"司徒玄在开赛前说,"真正的算法大师,在任何条件下都能保持思维清晰。"
第一试的题目让所有人倒吸冷气:模拟量子计算机的经典算法实现。这分明是针对陈默全国赛表现的特别设计。
"真贴心。"陈默活动了下因温差而僵硬的手指,开始构建一个精妙的概率模型。没有U盘的提示,但他发现自己竟能完整回忆起那些曾被视为"黑科技"的量子算法原理。
三小时后,当其他选手还在与复杂的酉矩阵纠缠时,陈默已经提交了第四题——他创造性地将量子随机行走转化为图论中的马尔可夫链问题,运行效率比标准解法高出47%。
"这思路..."监考裁判之一的中科院研究员盯着陈默的代码,"简直像把喷气发动机装在了自行车上——不合常理但快得离谱。"
最终陈默以全场唯一满分的成绩通过CTT第一阶段,总排名第一。成绩公布时,林雨晴在走廊拦住了他:"你看到周氏科技的声明了吗?"
她亮出手机上的新闻:《周氏科技质疑全国冠军:进步速度违反认知规律》。文章引述"匿名专家"观点,称陈默的算法能力曲线"不符合人类学习模式"。
陈默轻笑一声,从包里掏出一摞笔记本:"那就让他们看看什么叫'符合规律'。"
那是他过去六个月写的二十一本算法笔记,每页都密密麻麻记录着从基础到进阶的思考过程。林雨晴翻到中间某页,上面画着一个U盘形状的涂鸦,被大大的红叉覆盖,旁边写着:"今天开始全靠自己!"
媒体风暴与白板证明 第二天,周氏科技果然派来了采访团队,要求"见证天才的真实水平"。司徒玄出人意料地同意了,但条件是由他亲自出题。
会议室里挤满了媒体记者。周扬的父亲周正雄西装笔挺地坐在前排,嘴角挂着势在必得的微笑。陈默注意到他手腕上戴着一块特殊手表——表盘边缘刻着与"零点"组织相同的蛇形编码。
"题目很简单。"司徒玄在电子白板上写下要求,"在O(n)时间复杂度内,排序一个无序数组。"
记者们一脸茫然,但周正雄的脸色变了——这是周氏科技最新专利的核心算法之一。
陈默走到白板前,拿起记号笔。在数十个摄像头的聚焦下,他的笔尖没有一丝颤抖。先是构建了一个精妙的哈希映射,然后引入贪心策略优化空间复杂度。写到关键步骤时,他突然停笔。
"怎么,卡住了?"周正雄向前倾身。
陈默轻轻摇头,擦掉刚才的内容,转而采用纯数学的组合论方法重新推导。"其实有三种解法,"他边写边说,"但我想周总最熟悉的是这种。"
十五分钟后,白板上呈现出一个比周氏科技专利简洁得多的算法,且附带严格的数学证明。现场一位图灵奖得主评委当场起立鼓掌:"完美的演绎!这年轻人把论文级别的证明现场重构了!"
直播视频瞬间刷爆全网。周正雄在离场时被记者围堵,只能强作镇定地表示"欢迎公平竞争"。
"赢得漂亮。"司徒玄在人群散尽后对陈默说,"但CTS才是真正的战场。"
中国选拔赛(CTS)采用与国际赛完全相同的赛制:两天共九小时的极限编程。特别的是,今年增设了"答辩环节"——选手要当面接受三位图灵奖得主的质询。
第一天比赛,陈默在第三题遇到了前所未有的挑战:需要动态维护一个超大规模图的连通分量。就在他准备使用标准并查集时,脑海中突然闪过林雨晴昨晚讨论时说过的话:"有时候最朴素的数据结构反而能创造奇迹。"
手指悬在键盘上方三秒,陈默突然调转方向,改用最基础的邻接表结合懒标记策略。这种看似倒退的选择,却因为极低的内存开销而意外地在性能测试中碾压所有高级数据结构。
"返璞归真。"场外的司徒玄看着实时排名微笑。陈默的解法引起裁判组激烈讨论,最终被作为经典案例收入官方题解。
第二天答辩环节,陈默被要求解释动态剪枝算法的数学基础。刚讲到关键定理,一位白发评委突然打断:"如果约束条件改为非确定性多项式,你的算法如何保证完备性?"
全场寂静。这是刻意刁难的问题,往届选手多半会僵在台上。陈默却走向白板,擦掉原有证明,转而构建起一个基于概率图模型的新框架。
"其实可以从三个角度解决。"他边写边解释,"代数几何、组合优化或者..."粉笔突然折断,陈默直接用手指画出莫比乌斯环的形状,"像这样引入拓扑变换。"
评委席上的图灵奖得主们交换着惊讶的眼神。这种临场重构的能力,已经远超普通天才的范畴。
成绩公布时,陈默以领先第二名57分的绝对优势入选IOI四人正选名单。林雨晴凭借数学证明方面的特长成为替补队员。当司徒玄将绣着国旗的队徽别在陈默胸前时,老教授悄悄塞来一张纸条:
"IOI赛场有惊喜等着你。——S.X"
纸条背面画着一个莫比乌斯环,环内写着"2045"的数字。
启程前夕 离出征IOI还有一周,陈默和林雨晴回到初见时的省城图书馆。在"量子计算"专区的老位置,林雨晴掏出一本陈旧的研究日记。
"爷爷最后的研究,"她翻到被撕掉后又重新粘回的一页,"关于量子代码如何在人类大脑中形成永久印记。"
陈默凝视着页脚那个熟悉的标志,突然明白U盘所谓的"已完成使命"是什么意思——那些知识从未消失,只是从电子载体转移到了他的神经元突触中。
"所以司徒教授说的惊喜..."
林雨晴推了推眼镜,镜片反射着窗外的阳光:"IOI的东道主今年刚成立了量子计算机研究中心。而技术顾问..."她指向日记末页的照片,一个年轻时的司徒玄与林雨晴祖父站在粒子加速器前,身后的白板上写着:
"Code Master Project: Human Version"
机场送行时,司徒玄交给陈默一个密封的信封:"到开普敦再打开。"老教授的袖扣在安检X光机下闪烁着奇异的光芒,"记住,真正的对手从来不是赛场上的其他选手。"
陈默摸了摸胸前的队徽,转身走向登机口。舷窗外,晨光正穿透云层。他想起U盘最后的信息——2045年的自己说"量子计算寒冬即将到来"。
但此刻,属于他的盛夏才刚刚开始。
第十章-信封与星光
开普敦的夜风有股特殊的味道——干燥的泥土、远处的海盐、还有普罗蒂亚花若有若无的甜香。陈默站在酒店天台的栏杆边,手里握着司徒玄给他的信封。
羊皮纸的质地粗糙,火漆封口上的莫比乌斯环在星光下泛着暗红光泽。非洲的星空与北半球不同,南十字星低垂在桌山上方,银河像打翻的牛奶横跨天际,麦哲伦云如两团朦胧的光雾悬浮在深蓝天鹅绒上。
林雨晴推开天台门时带出室内的暖气,瞬间在冷空气中凝成白雾。她端着两杯热可可,马克杯的温热透过手套传递。“再不看天就亮了。”她说,眼镜片蒙着一层薄雾。
陈默撕开火漆。里面不是信纸,而是一张对折三次的蓝图复印件。纸张泛黄,折痕处几乎要断裂,边缘有被反复摩挲的痕迹。
蓝图展开,熟悉的量子芯片设计让他呼吸一滞。与他记忆中U盘内部结构相似,但更复杂、更...完整。七十二个量子比特排列成斐波那契螺旋,每个比特都与经典控制单元耦合,整个设计像某种精密仪器的解剖图。
“这是我爷爷的笔迹。”林雨晴的声音很轻。她指着蓝图右下角的注释——清秀的楷书,墨迹已有些褪色:“意识同步器原型,基于量子纠缠的神经信号映射。验证系统:CM→LYQ。”
陈默的手指拂过那些字母。CM是他,LYQ是林雨晴。这不是巧合,是二十年前就写下的安排。蓝图右上角有个手绘的莫比乌斯环,环内标注着日期:1998年11月7日。
“黎明计划。”林雨晴念出蓝图顶端的标题,“原来爷爷和司徒教授...”
刺耳的警报声撕裂夜空。
酒店电视自动切换到紧急新闻频道。女主播语速急促,背景是量子计算研究中心的警戒线,红蓝警灯在夜色中疯狂旋转。
“...当地时间凌晨两点十五分,开普敦大学量子计算研究中心遭入侵。失窃物品包括一台原型量子嗅探器,该设备可探测量子计算过程中的电磁泄露并逆向解析算法...”
画面切换到模糊的监控录像。三个黑影在实验室穿行,动作专业而安静。在某个转身瞬间,领头者手腕上的纹身在红外摄像头下清晰显现——蛇形图案,首尾相衔。
“零点组织。”林雨晴低声说。她已经在平板电脑上调出研究中心的结构图,“地下三层,生物识别加物理锁,但他们只用七分钟就突破了。”
陈默盯着屏幕上定格的纹身图案。蛇的眼睛处有个微小的芯片状设计,与他记忆中周正雄手表上的细节完全一致。
窗外传来更多的警笛声,由远及近,在开普敦的山谷间回荡。这座被誉为“上帝餐桌”的城市,此刻在夜色中显露出危险的裂隙。
林雨晴从背包深处取出一个小铁盒。打开后,里面是一枚普通的黑色发绳,但仔细看会发现编织纤维中嵌着微米级的金属导线,在灯光下泛着暗蓝光泽。
“爷爷留下的量子干扰器原型。”她说,“本来是给我的成年礼物,他说...‘当世界需要你保护什么的时候’。”
发绳在她掌心微微震动,频率与远处警笛的余音产生微妙共振。
IOI开幕式在开普敦国际会议中心举行。这座建筑如白帆般展开,玻璃幕墙倒映着桌山的雄姿和远处大西洋的波光。来自九十二个国家的选手穿着色彩各异的队服,在镁光灯和国旗的海洋中走入主会场。
中国队列队入场时,陈默的目光扫过主席台。赞助商区域第三排,一个穿深灰西装的中年男人正与旁人交谈。他手腕上的表在聚光灯下反射出特殊光泽——表盘边缘的蛇形编码,与监控录像里的纹身如出一辙。
“零点坐在裁判席了。”林雨晴在他耳边低语。她今天把头发扎成高马尾,量子干扰器发绳隐藏在发丝中,随着步伐轻轻摆动。
司徒玄作为国际裁判委员会主席上台致辞。聚光灯下,这位老人银发梳理整齐,深色西装左袖的莫比乌斯环袖扣反射着冷静的光。他按惯例回顾IOI历史、感谢主办方,然后话锋微转:
“今年,我们增设了一道特别的题目。”他停顿,目光如扫描仪般扫过台下数百张年轻面孔,“这道题的答案,可能影响量子计算研究的未来方向。”
会场安静下来,只有相机快门声此起彼伏。
“有些算法,”司徒玄继续说,视线在陈默身上停留了完整的一秒,“能改变的不只是比赛排名,还能改变我们看待世界的方式。”
掌声如潮水涌起时,大屏幕开始播放赛题预告动画。量子比特跃迁、经典电路闪烁、纠缠态如丝线交织...最后所有图像收束,凝聚成一行白字:
《阻止量子计算寒冬的算法模型》
陈默的太阳穴突突跳动。口袋里,U盘外壳的裂缝处渗出微弱蓝光,像深海鱼类发出的生物荧光。
四、钻石厅里的觉醒 比赛首日,陈默被分在“钻石厅”赛区。这座以开普敦钻石命名的展厅,此刻摆满了一百二十台高性能计算机。每台电脑都连接着陌生的外设——银灰色金属盒子,侧面蚀刻着IOI会徽与莫比乌斯环双重标志,散热孔发出几乎听不见的低频嗡鸣。
“说是新型评测机。”旁边的俄罗斯选手米沙低声抱怨,他的金发在赛场冷白光下几乎透明,“但我觉得它在读我的脑波。”
陈默坐下,手指刚触到键盘,口袋里的U盘外壳就传来细微的碎裂声。不是破坏性的破碎,而是像蝉蜕般沿着预设纹路裂开。米粒大小的蓝色晶体飘浮而出,悬停在显示器前三十厘米处,开始投射发光的文字:
【最终任务激活】 【目标:今日压轴题】 【警告:量子嗅探器已上线】 【保护密钥:林雨晴的发绳】 【输入她的生日,解锁全部记忆】 【倒计时:比赛开始后】
陈默抬头。三十米外的“铂金厅”赛区,林雨晴正低头检查键盘。似乎感应到他的注视,她抬手整理马尾,指尖在发绳上轻轻一按。
两人之间隔着玻璃隔断、成排的显示器、忙碌的工作人员,但就在那个瞬间,陈默感到某种连接——不是物理的,不是电磁的,而是更基础的,像两个量子比特被置于纠缠态,无论相隔多远,状态始终相关。
比赛开始的提示音响起。
陈默在键盘上输入:0903。
晶体爆发出一团柔和蓝光,然后化为无数光点,如萤火虫般消散在空气中。没有信息洪流,没有记忆冲击,只有一种奇特的“知晓”——那些复杂的量子算法、那些精妙的数学结构,都在意识深处自然浮现,像是自己本就知道,只是暂时忘记了。
前两题是经典的图论优化和动态规划,陈默用标准解法快速通过。当压轴题出现在屏幕上时,整个赛场响起一片倒吸冷气的声音。
题目描述只有一句话:
“设计一个算法,在量子计算机普及的时代,保护古典算法的价值。”
这不是竞赛题,是宣言,是挑战,是掷向整个计算领域的战书。
陈默的手指悬在键盘上方。三秒,他闭眼;再睁眼时,眼底有星火闪烁。
他开始打字,速度不快,但每个字符都精准如手术刀。他构建了一个框架——不是让古典算法被量子算法取代,而是与之共生。用量子特性加速古典算法的瓶颈步骤,用古典算法的鲁棒性弥补量子计算的脆弱性,在两者之间建立动态平衡的接口。
提交前,他在注释栏写下:
“算法永存,只因思想不朽。真正的价值在于人类思维的无限延展。——CM & LYQ”
评测结果几乎是瞬间返回:
【运行时间:0.07秒】 【创新分:100%】 【当前排名:1】
五、暗夜脉冲 颁奖晚宴前两小时,陈默和林雨晴溜出酒店。开普敦的冬夜寒冷清澈,银河如瀑布倾泻,南半球特有的麦哲伦云在天顶泛着朦胧的光晕,像宇宙轻声的叹息。
量子计算展厅是座玻璃与钢铁构成的现代建筑,坐落在大学校区边缘。白天这里充满参观者的惊叹,此刻却空无一人,只有安全出口的绿色指示灯提供着病态的光明。
中心展台空空如也——量子嗅探器的原型机确实失窃了。展台下的接线被粗暴扯断,铜质接口处有电击造成的烧焦痕迹,空气中有臭氧和熔融塑料的刺鼻气味。
“为什么要偷这个?”林雨晴蹲下检查,“这种设备需要配套的量子态解析系统,还有 petabytes 级的训练数据...”
陈默想起U盘最后影像中,那个自称2045年的自己疲惫的眼神和那句话:“量子寒冬是人为灾难。”
脚步声从走廊尽头传来,皮鞋敲击大理石地面的声音在空旷展厅里回荡。
两人迅速躲进展柜阴影。展柜里是量子计算的时间线展览,从图灵机到超导量子比特,玻璃上倒映出三个进入展厅的人影。
周正雄走在中间,两个黑衣人紧随。其中一人手持的正是失窃的嗅探器,此刻设备指示灯规律闪烁,发出低沉脉冲声,像是某种深海生物的次声波呼唤。
“频率调到最高,覆盖整个会议中心范围。”周正雄命令道,声音在展厅里产生轻微回声,“明天决赛,我要那个算法从他的脑电波里直接提取出来。完整的,带所有优化细节。”
黑衣人转动旋钮。嗅探器发出尖锐的嗡鸣,天线处扩散出肉眼可见的空气波纹——不是声波,是特定频率的电磁脉冲。
波纹在展厅中扩散,触及展柜时,玻璃开始轻微震动。就在即将抵达陈默他们藏身之处时,林雨晴的发绳突然发光。
不是反射灯光,是从纤维内部透出的蓝色冷光。光形成一层薄膜,将两人包裹在内。薄膜表面有复杂的干涉条纹,像水面上的油彩。
嗅探器的嗡鸣转为刺耳爆音,指示灯疯狂闪烁,然后“砰”的一声闷响,冒出滚滚黑烟。刺鼻的烧焦味瞬间弥漫展厅。
“量子干扰!”周正雄暴怒转身,“那丫头肯定在附近!搜!”
陈默拉着林雨晴从侧门冲出。非洲冬夜的寒风如刀割面,两人在校园小径上狂奔,脚下碎石飞溅,直到躲进一丛高大的帝王花后,剧烈喘息。
林雨晴解下发绳。编织纤维已经炭化,金属导线裸露,还在发烫,在她掌心留下浅浅红痕。“只能用一次。”她喘息着说,白汽在冷空气中迅速消散,“爷爷的设计...是单次消耗品。”
“够了。”陈默握紧手中碎裂的U盘外壳,塑料边缘硌着掌心,“明天,靠真本事。”
远处,桌山的巨大轮廓在星空下沉默。这座见证了六亿年地质变迁的山脉,此刻也见证着人类科技史上一个小小的、却可能改变一切的夜晚。
第十一章 白板上的星火
决赛日清晨,开普敦起了浓雾。桌山被白色雾气完全吞没,像是悬浮在半空的巨大幽灵船。雾气从大西洋涌来,漫过海岸线,吞没楼宇、街道、远山,将整座城市包裹在潮湿的寂静里。
陈默站在酒店房间窗前,看着窗外白茫茫一片。偶尔有车灯划过,如深海中的发光生物,转瞬即逝。手中烧焦的发绳碎片还残留着昨夜的温度和惊险。
林雨晴敲门进来时,眼下的淡青阴影说明她同样无眠。她手里拿着笔记本,上面是手绘的电路图和推导公式。
“我分析了嗅探器的工作原理。”她在窗边小桌摊开笔记本,“它通过捕获量子计算过程中泄露的电磁特征,结合机器学习重构算法逻辑。但爷爷的设计更巧妙——不是屏蔽,是制造虚假的量子特征,让嗅探器的神经网络误判,最终过载崩溃。”
“就像用海市蜃楼欺骗雷达。”
“对。但决赛的赛制...”林雨晴顿了顿,笔尖在纸上无意识地画着圈,“白板编程。没有电脑,没有电子信号,只有粉笔、黑板和人类思维。嗅探器无用武之地。”
陈默看向窗外。雾正在缓慢散去,桌山巨大的平顶如岛屿般从雾海中浮现。在非洲大陆最南端的这座城市,在这个连接两大洋的地方,他将面对可能是人生中最重要的一场“表演”。
不是竞赛,是表演。因为白板编程的本质,就是在评委和观众面前,现场构建思想的大厦——没有退格键,没有撤销操作,每一步都暴露在审视之下。
决赛赛场设在开普敦大学的老图书馆。这是一座维多利亚风格的建筑,高耸的拱顶绘有星空壁画,彩色玻璃窗将阳光过滤成神圣的光柱,橡木长桌历经百年摩挲,表面温润如肌肤。
但今天,长桌被移到墙边,中央空地上立着十面巨大的移动黑板。黑板如墓碑般排列,每面前放着一盒粉笔、一块板擦、一瓶水。
选手抽签决定题目和顺序。陈默展开纸条,上面的文字让观众席传来压抑的惊呼:
《证明古典算法在量子时代的局限性》
出题方:零点科技。
林雨晴在观众席第一排握紧了拳头。指节发白,指甲陷入掌心。这是赤裸裸的挑衅,是要逼陈默在全世界面前否定自己的核心理念。
陈默走向第七号黑板。他穿着简单的白衬衫,袖口挽到小臂,露出瘦削但线条清晰的手腕。工作人员递来粉笔盒,他选了支白色粉笔,在指尖轻轻转动,粉笔灰如雪屑飘落。
评委席上,三位图灵奖得主坐在正中。两侧是赞助商代表,周正雄坐在零点科技的位置,面无表情,但手指在膝盖上轻轻敲击着某种节奏。
“选手可以开始了。”主裁判说。
陈默转身面对黑板。黑色板面如无垠的夜空,等待第一颗星火点燃。
他先写了标准的论证结构:量子算法在某些问题上的指数级加速,Shor算法对RSA的威胁,Grover搜索的平方根加速,经典算法的理论极限,复杂度类的包含关系...这是教科书式的回答,也是零点科技期待的答案。
写了十分钟,粉笔用掉半支。他停笔,后退两步,审视黑板上的内容。然后,在所有人的注视下,他抬起手臂,用板擦把刚才写的内容全部擦去。
白色粉尘在空气中悬浮,在从彩色玻璃窗射入的光柱中缓慢旋转,如微型星云。
“我要证明的,”陈默面对评委席,声音清晰平稳,“是相反的命题。”
粉笔重新接触黑板,这一次的轨迹完全不同。
陈默从最基础的开始:计算是什么?他画出图灵机的简化模型,写下丘奇-图灵论题。然后,在旁边,他画出量子线路图,标注出量子并行性、纠缠和干涉。
“传统观点认为,”他边写边说,声音在图书馆的高拱顶下产生轻微回响,“量子计算超越经典计算,就像喷气机超越马车。但也许,更恰当的比喻是...”
他在两者之间画了一条波浪线,然后在波浪线上标注了几个点:“就像帆船和蒸汽船。各有各的航道,各有各的风。而在某些航线上,帆船可能更快,更灵活,更...优雅。”
评委席开始有窃窃私语。一位图灵奖得主向前倾身,眼镜片反射着黑板上的公式。
陈默继续。他构建了一个精妙的数学模型,展示如何用量子特性增强经典算法——不是取代,是增强。用量子随机行走加速蒙特卡洛模拟,用量子相位估计优化数值计算中的特征值问题,用量子隐形传态实现分布式计算的超低延迟通信...
每一步都配有严格的数学推导。公式在黑板上蔓延,像藤蔓生长,相互连接,最终编织成完整的理论网络。他的书写速度越来越快,粉笔与黑板摩擦的沙沙声成为图书馆里唯一的声响。
关键处,他需要证明量子辅助的经典算法,在某些情况下可以达到纯量子算法的效率,同时保持经典算法的可解释性和鲁棒性。
他写下一个关键的引理,停顿。板擦举起,又放下。他盯着那个公式看了足足三十秒,额角渗出细密汗珠。
“需要提示吗?”零点科技的首席科学家突然开口,语气带着毫不掩饰的嘲讽,“这个引理需要复杂的代数几何工具,我记得你们在这个领域...”
他没有说完,但未尽之言悬在空气中,像未爆的炸弹。 陈默没有回头。他放下粉笔,后退几步,盯着黑板。汗水从鬓角滑落,在下颌线悬停,然后滴在衬衫领口,洇开深色斑点。
然后,他做了一个让所有人惊愕的动作——直接用手指在黑板上画图。
指尖划过黑色板面,留下淡淡的白色痕迹。他画了一个莫比乌斯环,然后在环的扭曲处标注:“这里,经典与量子的边界,确定性到概率性的过渡,粒子到波的转变。”
“拓扑变换。”那位倾身的图灵奖得主低声说,声音里带着压抑的兴奋。
陈默重新拿起粉笔,沿着手指画出的轨迹书写。他把问题重新表述为微分流形上的优化问题,用量子态表示切空间,用经典算法进行黎曼梯度下降。符号在流淌,等号在连接,当最后一个项完成时,整个证明突然变得简洁而优雅。
就像复杂的结被巧妙解开。
会场陷入长久的寂静。只有远处城市隐约的交通声,和图书馆古老时钟的滴答声。
然后,那位最早说话的图灵奖得主站了起来,开始鼓掌。
掌声起初零星,然后如野火蔓延。但就在声浪即将达到顶峰时,林雨晴从观众席站起。
她手中举着一本老旧的笔记本,皮革封面磨损严重,边角已经泛白起毛。她走到评委席前,将笔记本翻开到某一页,放在桌面上。动作很轻,但所有人都屏住了呼吸。
泛黄的纸页上,手写的数学推导清晰可辨,日期标注:1998年3月17日。在证明的末尾,有一行小字:“此结果可供学界共享,惟望注明出处,以彰科学之本。”
“关于这个引理,”林雨晴的声音通过麦克风传遍图书馆的每个角落,清晰冷静,“我爷爷林远山在1998年就给出了完整证明,比国际学界公认的成果早了至少五年。”
零点科技的首席科学家脸色骤变。
“而就在同年6月,”林雨晴翻开另一页,那是一封信的复印件,抬头是“星海研究所”——零点科技的前身,“这家研究所向我爷爷购买‘非独家研究使用权’。合同第三条明确规定:不得用于专利申请,尤其不得在未注明来源的情况下申请专利。”
她从文件夹里取出更多文件,一一展示:“但在2003年,零点科技申请了美国专利US7823491B2,欧洲专利EP1521193B1,核心算法正是基于我爷爷的证明,却未在说明书中提及来源。”
整个会场哗然。记者们的相机疯狂闪烁,快门声如暴雨敲打屋顶。
周正雄猛地站起,椅子在地面划出刺耳声响:“这是污蔑!我们有合法授权——”
“授权范围明确排除专利申请。”司徒玄的声音通过裁判席的麦克风响起,沉稳如磐石,“我作为当年技术转让的独立见证人,保留了合同副本。”
大屏幕上,司徒玄出示了一份文件扫描件——正是那份1998年的合同,条款清晰明确,签字页上有林远山、星海研究所代表,和见证人司徒玄的签名。
“科学应该有记忆。”司徒玄缓缓站起,目光如炬扫过全场,“也应该有良知。忘记来源的算法,就像忘记根系的树木,终将枯萎。”
周正雄的脸色由红转白,再由白转青。他环顾四周,发现所有人的目光都如针般刺来。他张了张嘴,似乎想说什么,最终只是抓起西装外套,转身快步离场。两个手下紧随其后,消失在图书馆的侧门。
寂静重新降临,但这次的寂静里有一种不同的重量。
颁奖典礼在傍晚举行。夕阳把桌山染成金红色,云层如燃烧的火焰悬浮在山顶——这是开普敦著名的“桌布云”奇观,当地人说是“上帝铺上了桌布”。
陈默站在领奖台最高处,金牌挂上脖颈的瞬间,金属的冰凉与重量真实得令人恍惚。国歌响起,五星红旗在异国的天空下缓缓上升,红色在非洲的蓝天中格外鲜艳。他看见林雨晴在台下抹眼泪,看见司徒玄微微点头,看见其他中国队员挺直的脊梁。
但这只是开始。金牌会氧化,掌声会消散,新闻会被更新的事件覆盖。真正的战斗,在聚光灯照不到的地方。
后台走廊,司徒玄递给陈默一个金属箱子。二十厘米见方,沉甸甸的,表面没有任何标识,只有一块小小的指纹识别区。
“黎明计划2.0。”老教授低声说,手指在箱盖上轻轻一点,“到了该打开的时候了。”
陈默将拇指按上识别区。箱盖发出几乎听不见的嗡鸣,然后无声滑开。里面是一台复古风格的笔记本电脑——不是真的旧,而是设计成老式ThinkPad的样子,但材质明显是某种复合材料,触感温暖如肌肤,表面有细微的纹理,像指纹又像电路。
开机,屏幕亮起,没有操作系统界面,只有深蓝色背景上一行白字:
【黎明计划2.0】 【任务目标:阻止量子计算寒冬】 【合作伙伴:林雨晴(权限等级SSS)】 【倒计时:1825天】 【第一条线索:返回清华,姚班报到】
五年倒计时。从今天开始。
返程的飞机在夜空中航行。舷窗外是南半球特有的星空,南十字星清晰可见,银河如一条发光的河流横跨天穹。陈默靠窗坐着,膝盖上放着那台特殊电脑。
林雨晴在他旁边睡着了,头靠在他肩上,呼吸均匀。她手里还握着那本爷爷的笔记本,即使在睡梦中也没有松开。
陈默插入司徒玄新给的加密U盘。屏幕显示出一个复杂的网络图——不是社交网络,是知识网络。节点闪烁如星辰,连线流动如星河。每个节点代表一个参与者:代号、研究方向、最新进展...
他的目光停在一个节点上:代号“守望者”,位置北京,最新状态:“已确认林远山手稿真实性,零点涉嫌学术不端证据链完整,待时机公布。”
这是司徒玄。
另一个节点:代号“园丁”,位置莫斯科,状态:“周氏科技在俄活动监控中,已接触三名IOI选手,提供奖学金但附加保密条款。”
这是米沙。那个在赛场上与他惺惺相惜的俄罗斯少年。
节点还在增加,像星光在黑暗中一颗颗点亮。陈默看见来自伯克利、剑桥、东京、班加罗尔的名字,看见数学家、物理学家、计算机科学家、甚至哲学家的代号。他们研究方向各异,但都连接着同一个目标:防止知识割裂,防止量子寒冬。
这不是他一个人的战斗,甚至不是一代人的战斗。这是跨越时间、空间、学科、国界的,人类对自身文明走向的守护。
飞机开始下降高度,北京城的灯火在夜幕中铺展开来,如地上的星河,与天上的银河遥相呼应。
陈默想起U盘最后的话,想起2045年的自己那双疲惫却坚定的眼睛。量子寒冬如果真的来临,那将不只是技术的停滞,更是人类精神的分裂——古典与量子、东方与西方、开源与封闭、个体与集体,无数对立面的割裂。
而他们要做的事,是在割裂发生之前,建造桥梁。
林雨晴醒了,揉着眼睛看向窗外。飞机正在穿过云层,下方北京的灯火越来越清晰,街道如发光的血管,建筑如闪亮的细胞。
“到家了。”她轻声说。
“嗯。”陈默合上电脑,屏幕的光芒消失,但眼中的光芒更亮了,“但又要出发了。”
飞机轮胎接触跑道,震动传来,安全带收紧。一段旅程结束,另一段刚刚开始。在星辰与代码之间,在过往与未来之间,他们找到了自己的位置——不是追随者,不是颠覆者,而是连接者。
连接古典与量子,连接东方与西方,连接此刻与未来。
而所有的连接,都从脚下这一步开始。
飞机滑行,舱内灯光渐亮。陈默看着窗外熟悉的机场,看着这个他将要改变也必将被它改变的城市。
黎明计划2.0。倒计时:1824天23小时59分。
第十二章 茶、光点与套娃
清华计算机系大楼307室,凌晨两点。黑板上的粉笔字在荧光灯下泛着冷白光泽,从NP完全问题归约到近似算法的证明链条,在右上角卡住了。陈默盯着那个断点,已经盯了四十七分钟。粉笔灰沾满衬衫袖口,像某种抽象画作的留白。
一杯冒着热气的龙井茶被轻轻推到桌边。
陈默没回头,手指下意识地触到温热的杯壁。茶杯是普通的白瓷,但茶水澄澈,茶叶在杯底舒展如初春的嫩芽,热气袅袅上升,在黑板前形成薄雾。
“O(n²)的证明可以更优雅。”声音从身后传来,沉稳如古井。
陈默转身。姚期智教授站在门廊阴影里,白发在灯光下像一捧新雪,深灰色中山装熨烫平整,手里拿着自己的紫砂茶杯。这位图灵奖得主、清华姚班创始人,此刻像个夜归的普通老人。
老教授走到黑板前,拿起一支新粉笔,在三处地方画了圈。粉笔与黑板摩擦的声音很轻,像秋叶落地。“这里,这里,还有这里,”他说,“像茶道,多余的步骤会破坏整体美感。”
陈默怔住了。那三处正是他反复修改却始终不满意的地方。
姚期智从公文包里取出一个小小的紫砂壶,只有拳头大,壶身刻着竹纹。他又拿出两个小杯,在实验桌上摆开。“陪我喝杯茶?”不是询问,是陈述。
水是保温杯里的,温度刚好。茶叶在壶中舒展,茶香氤氲而起,在充满电子设备气味的实验室里,开辟出一小片古老的时空。
“我年轻时在伯克利,”姚期智转动着茶杯,目光投向窗外深沉的夜色,“觉得所有问题都该用最精妙的解法。直到有一天,看见一个老清洁工扫落叶。”
陈默端着茶杯的手停在半空。
“那是深秋,枫叶铺了满地。清洁工用的就是最普通的竹扫把,但他扫出的轨迹...”老教授顿了顿,似乎在寻找合适的词,“像书法。每一扫都恰到好处,落叶聚成完美的弧形,风吹不散。”
茶香在空气中弥漫。陈默忽然明白了——他最近那篇被《信息与计算》拒稿的论文,问题不在于算法不够精妙,而在于太精妙了。他追求量子加速的极致,却忽略了实际问题中那些“不完美”的约束。
“代码如茶。”姚期智喝完最后一杯,起身走向门口,“初尝苦涩,回味方知甘醇。而最好的代码,应该像这壶龙井——看似简单,实则每一片叶子都在正确的位置。”
老人离开后,陈默重新站在黑板前。他擦掉所有内容,从最朴素的基本定理开始重构。这一次,不再追求炫目的技巧,而是寻找最本质的结构。当晨光透过东窗,在黑板投下淡金色光影时,上面已经有了三种不同角度的证明——每一种都比原先简洁,每一种都更美。
量子计算实验室的灯永远亮到最晚。那是主楼地下二层改建的空间,恒温恒湿,屏蔽电磁干扰,像个高科技的洞穴。
某个暴雨夜,陈默正在调试出错的量子模拟器。屏幕上,十二个量子比特的相干时间曲线如心电图般跳动,在某个参数点突然断崖式下跌。他尝试了七种纠错方案,无一奏效。
身后传来塑料袋窸窣的声音。
“韭菜盒子,趁热吃。”张远航浑身湿透地站在门口,雨水从发梢滴落,在环氧树脂地板上洇开深色斑点。他手里拎着两个塑料袋,一个装着餐盒,一个装着换洗衣物。
陈默这才想起晚饭。不,是昨天晚饭。他接过餐盒,韭菜和鸡蛋的香气瞬间充斥鼻腔。盒子还烫手,显然是一路狂奔送来的。
“你妈刚才打电话到实验室,”张远航脱下湿透的外套,“说联系不上你。”
陈默摸出手机,黑屏。没电了,什么时候没电的?他不知道。他借张远航的手机拨通视频,母亲的脸出现在小屏幕上,苍白但带着笑。
“小默,吃饭了吗?”
“吃了。”陈默说谎,喉咙有些发紧。
“那就好。妈这边都好,医生说了新的治疗方案...”母亲的声音很轻,背景是医院特有的那种安静。她刻意侧了侧身,但陈默还是看见床头柜上那一排药瓶,看见她手背上的留置针。
视频挂断后,实验室陷入沉默。只有服务器风扇的低鸣,和窗外暴雨敲打玻璃的声音。
第二天清晨,陈默刚进实验室,一张纸就飘到他面前。
收据。打印的,盖着“实验室特别经费”的红章,金额栏是五位数。付款项目:医疗预付。
“别那副表情。”张远航头也不抬,继续调试着低温探针台,“要从你劳务费里扣的。分期,二十年还清。”
陈默知道实验室没有这笔预算。姚班的经费每一分都要审计,所谓“特别经费”根本不存在。他默默把收据夹进笔记本,翻开时,里面已经夹着六张类似的“垫付证明”——从母亲的药费到上次住院的押金,时间跨度七个月。
笔记本的塑料封皮因为反复翻动已经软化,边缘起毛。那些收据按时间顺序排列,像某种特殊的账本,记录着他欠这个世界的温暖。
周末,张远航强行把陈默拽出实验室。
“算法卡壳时需要的是新鲜空气,不是更多咖啡。”他推来两辆共享单车,车筐里放着水和面包。
两人骑车穿过清华园,出西门,沿着成府路向东。秋日的北京,天空是高远的蓝,银杏叶刚开始泛黄,像无数小扇子在风中轻摇。他们穿过五道口拥挤的人潮,转入胡同,在青砖灰瓦间穿行,最后停在景山公园西门。
登上万春亭时已是傍晚。夕阳西下,紫禁城的琉璃瓦反射着金红色光芒,层层殿宇如棋盘铺展,中轴线笔直如尺,指向正南。远处,现代建筑在天际线上勾勒出起伏的轮廓,古老与当代在此刻交汇。
张远航从背包里掏出一个小小的激光笔,绿色光束在暮色中清晰可见。他调整角度,光束投向最近的一处宫墙——那不是故宫本体,是外围的某段红墙。
光点在红墙上跳跃,先是一个点,然后两个,四个,八个...成二进制指数增长。它们在墙上排列、移动、组合,最终形成一个图案。
陈默认出来了。那是他最近论文中卡住的核心算法——用动态规划求解最短超弦问题的状态转移图。但张远航做了改编,光点流动的轨迹,在红墙上拼出了两个汉字:
坚持
光只停留了十秒,然后消失。但那一瞬间的画面,刻进了陈默的视网膜深处。红墙如血,绿光如星,古老的城墙承载着最现代的算法语言,沉默地诉说着某种永恒。
回程时,夜色已深。两人推着车沿北河沿慢慢走,秋风带着凉意,吹动路旁的槐树叶沙沙作响。
“我有个哥哥,”张远航突然说,声音很轻,“如果还活着,应该跟你差不多大。”
陈默侧头看他。路灯下,张远航的侧脸线条硬朗,但眼神里有罕见的柔软。
“车祸。我十岁那年。”他顿了顿,“所以他没机会做的那些事——熬夜研究、追逐梦想、照顾家人——我想替他做一点。”
陈默没说话。他看着自己的影子在地上拉长又缩短,看着车轮碾过落叶,看着远处清华园的灯火渐近。
有些温暖不需要言语。就像有些算法不需要注释。
IOI金牌得主米沙·伊万诺夫来清华交流的消息,在计算机系引起了小小的轰动。这个俄罗斯少年是两年前与陈默在南非赛场并列理论满分的选手,以思维跳跃和跨学科洞察力著称。
报告厅里,陈默提前半小时到场,选了第三排靠过道的位置。陆陆续续有学生进来,低声交谈,充满期待。当米沙出现在门口时,陈默几乎没认出来——金发剪短了,戴上了黑框眼镜,原本的少年气被某种早熟的沉稳取代。
但米沙一眼就认出了他。
“默!”俄式发音的中文,带着夸张的卷舌音。金发少年穿过人群,张开双臂就是一个熊抱,身上有淡淡的雪松香气。“你的量子算法论文,”他松开手,眼睛在镜片后闪着光,“我读了三遍!第二遍才看懂,第三遍才明白有多美。”
他从背包里掏出一个套娃,彩绘的,最大那个穿着传统俄罗斯长裙。“礼物。”他说,“最里面藏着秘密。”
报告开始了。米沙的课题是“量子计算与古典音乐的拓扑类比”,一个听起来荒诞却充满想象力的方向。他用傅里叶变换分析巴赫赋格,用量子态叠加比喻和弦进行,用纠缠解释对位法中的声部关系。当他展示如何用舒伯特《未完成交响曲》的旋律线推导出新的量子门序列时,全场鸦雀无声。
提问环节,陈默走到白板前,拿起粉笔。他画了一个简单的量子线路,然后看向米沙。
无声的挑战。
米沙笑了,露出虎牙。他接过粉笔,在原有线路上添加了几个门,线路突然变得复杂而优美。陈默擦掉一部分,重新组织。米沙点头,又添加新的结构。
没有语言,只有数学符号在流淌。粉笔灰如雪飘落,两个曾经在赛场上交锋的对手,此刻在白板上进行着另一场对决。围观的学生越来越多,踮脚张望,有人开始用手机录像。
当米沙用蒙特卡洛方法模拟出陈默最近研究的量子退火过程时,粉笔“啪”地断了。白色碎屑落在两人鞋面上。
“完美!”陈默指着模拟结果的某个异常点,“但这里...”
米沙大笑着,用剩下的粉笔头写下三行公式——那是俄罗斯数学家刚发表在arXiv上的拓扑群论新成果,正好补全了陈默理论链中缺失的一环。
掌声响起,不只是为这场精彩的对决,更为那种跨越语言和国界的、纯粹的思想共鸣。
深夜的西门烧烤摊,啤酒泡沫沾湿了写满公式的餐巾纸。米沙突然严肃起来,用英语说:“周氏科技在莫斯科设了研究所,就在莫斯科大学旁边。他们专门挖IOI选手,开价是本地薪水的二十倍。”
他从口袋里掏出笔,在干净的餐巾纸上画了一个图案——蛇形,首尾相衔,眼睛处有个芯片状的细节。
“小心这个。”他把餐巾纸推给陈默,“他们不是只要技术,他们要忠诚。”
回到宿舍已是凌晨。陈默拆开套娃,一层又一层,从掌心大到指甲小。最小的那个木娃娃没有彩绘,原木色,表面光滑如卵石。拧开,里面有一卷纸条。
展开,俄文和英文双语:
“真正的对手永远是昨天的自己。 而真正的朋友,是那个让你成为更好自己的人。 ——你的朋友,米沙·伊万诺夫”
纸条背面,用极细的笔迹写着一串坐标和日期:莫斯科大学主楼,12月25日。旁边画了个小小的雪花图案。
陈默的寝室在紫荆公寓15号楼三层。房间不大,二十平米,却像被无形的中轴线一分为二。
陈默的这一侧:墙上贴着希尔伯特空间示意图、量子门真值表、莫比乌斯环的手绘图。书架上挤满了《量子计算与量子信息》《算法导论》《数学分析原理》,书脊磨损程度标示着使用频率。桌面上三台显示器呈弧形排列,代码编辑器永远打开,背景是深空星云。
王奕的那一侧:墙上贴着用户增长曲线图、A轮融资倒计时、硅谷独角兽公司logo墙。白板上写满商业模型、市场细分、用户痛点分析。书架上《从0到1》《精益创业》《增长黑客》与计算机教材平分秋色。桌面只有一台MacBook Pro,永远停留在财务报表或商业计划书界面。
王奕,ACM创业大赛冠军,大二时就拿到天使投资,公司估值已过千万。他相信技术应该改变世界,而改变世界的方式是把它变成商品。
“又熬通宵?”清晨六点,王奕叼着牙刷从洗手间出来,瞥见陈默电脑上密密麻麻的量子门电路,“说真的,你这些研究随便拿个专利,够在五道口买套房了。”
陈默皱眉,没接话。他正在调试一个量子纠错码的参数,这个参数关系到整个算法的容错阈值。小数点后第六位的变化,可能导致完全不同的结果。
“我是说真的。”王奕擦着脸,“技术不落地,就是空中楼阁。你知道现在投资界多追捧量子计算吗?哪怕只是个demo...”
“这不是demo。”陈默打断他,声音有些冷,“这是基础研究。”
冲突在期中爆发。王奕未经同意,把陈默的一个量子优化算法简化后做成商业演示,在创投路演上大获成功,当场拿到三百万意向投资。庆功宴上,他举着奶茶像举香槟:“帮你实现技术变现还不好?”
陈默罕见地提高了嗓音:“那根本不是我的研究方向!你删掉了所有理论基础,只留下最表层的应用,那和魔术表演有什么区别?”
冷战持续一周。两人在寝室里错开作息,交流仅限于“灯关一下”“水费交了”。陈默的算法卡在一个概率分布问题上,王奕的商业计划遇到了政策瓶颈,各自在各自的困境里挣扎。
直到某个深夜,王奕醉酒归来,发现陈默还在帮他调试明日路演的代码——那是他为了教育扶贫项目做的AI教学平台,但图像识别模块总是误判。
“抱歉。”王奕把醒酒茶放在陈默手边,茶汤在马克杯里晃荡,“但你知道贫困山区学校为什么用不上最新技术吗?不是因为技术不够好,是因为没人把它变得足够便宜。”
第二天,陈默请了假,跟着王奕去了河北青龙县的一所乡镇中学。山路颠簸四小时,抵达时已是午后。学校只有一栋三层教学楼,墙皮斑驳,操场是土地,篮球架锈迹斑斑。
但机房里有三十台电脑——十年前的型号,开机需要三分钟,运行稍微复杂点的程序就卡顿。孩子们围在电脑前,眼神里的渴望像星光一样亮。他们在学习最基础的编程,用LOGO语言画图,用Scratch做动画。一个男孩展示他做的“炸飞机”游戏,虽然简陋,但那是他花了两个月才调通的。
“他想学人工智能,”校长说,“但我们的电脑跑不动TensorFlow。”
返程的高铁上,两人在摇晃的车厢里起了一份方案。陈默贡献了他的模型压缩算法——能把神经网络体积缩小到十分之一而不损失精度
合同草稿在笔记本电脑上一点点完善。到最后,王奕在专利占比一栏,把自己的份额从40%划掉,改成了15%。
“技术如果不能温暖他人,”他说,眼睛盯着窗外飞驰而过的田野,“就只是冰冷的代码。而代码应该温暖。”
“你最近...不太一样了。”
图书馆四楼靠窗的老位置,林雨晴拦住正要离开的陈默。秋日的阳光透过银杏叶,在她头发上投下细碎的金斑。她指尖点了点陈默手机屏幕上,那个新增加的通讯录分组——
“朋友” 陈默愣住。他点开分组,里面只有五个名字:姚期智、张远航、米沙、王奕、林雨晴。但聊天记录却填满了手机存储的相当一部分:
与姚教授的二十三条语音,每条都在讨论某个数学证明的美学;
张远航发来的七张收据照片,最新那张是母亲新疗程的预付款;
米沙用俄语写的拓扑学笔记,附带谷歌翻译的英文版;
王奕分享的商业计划书,在“技术核心”部分用红色标注:“此部分算法由陈默博士独家提供,暂不授权第三方”;
还有林雨晴自己,每天发来的论文摘要、学术会议信息,以及“记得吃饭”的提醒。
“就像...”陈默思索着,手指无意识地转动着铅笔,“原本只运行单线程的程序,突然学会了多任务处理?而且每个线程都不冲突,反而相互促进?”
林雨晴笑出声,眼睛弯成月牙:“终于不只和U盘说话了?”她翻开陈默摊在桌上的笔记本——那是他从高中用到现在的,封面画着幼稚的莫比乌斯环。
她翻到最近几篇论文的致谢部分。那里原本永远只有“感谢导师姚教授”,现在却多了:
“感谢张远航博士在实验设计上的关键建议” “与米沙·伊万诺夫的讨论启发了第三节的证明思路” “王奕先生提出了实际应用场景的宝贵意见” “特别感谢林雨晴女士在数学严谨性上的持续帮助”
五个名字。像五根支柱,撑起了他原本孤高的学术世界。
窗外,银杏叶正一片片飘落,金黄的扇形在秋风中旋转,落在图书馆前的草坪上,落在自行车筐里,落在匆匆走过的学生肩头。陈默想起U盘系统最后的那句话,那个他曾经以为懂了,现在才真正开始懂的话:
“真正的算法在人类连接中。”
当时他以为指的是量子纠缠,是粒子间神秘的非局域关联。现在他明白了,那些深夜的龙井茶、雨夜的韭菜盒子、景山墙上的光点、套娃里的纸条、还有高铁上起草的合同——这些才是真正强大的算法。它们优化着孤独,压缩着痛苦,并行着温暖,在人类心灵的分布式系统中,运行着最优雅的协议。
实验室的电话就在此时响起。陈默接起,张远航的声音带着罕见的兴奋,背景音里有仪器运行的嗡嗡声:
“老姚搞到两张国家大剧院《数学之美》音乐会的票,说是奖励你上次那篇论文。这周六晚上,第一排——”
“帮我谢谢教授。”陈默说,眼睛看着林雨晴。她正在收拾书包,马尾辫随着动作轻摆,发梢在阳光下泛着暖棕色的光泽。
电话那头停顿了一下:“你自己跟他说?”
“不,”陈默说,声音很轻但清晰,“我的意思是,这次我想邀请别人一起去。”
林雨晴抬起头,眼镜片后的眼睛眨了眨,然后,嘴角慢慢扬起一个弧度。那个弧度很小,但足够让整个秋日的阳光都变得温柔。
窗外的银杏还在落,一片,又一片。而在某个看不见的维度里,人类的算法正在悄然升级——从孤独的求解,到连接的涌现。
而这一切,才刚刚开始。
第十三章 临界状态
清华园东北角的旧材料实验楼,是五十年代苏式建筑的产物。红砖墙爬满了爬山虎,入秋后叶片转红,远远看去像墙壁在燃烧。三层那排原本封死的窗户,如今重新透出灯光——那是“量子-经典融合实验室”刚刚入驻。
陈默站在楼梯转角,仰头望着铜牌上的反光。三个月前,他和张远航、王奕在烧烤摊上聊出这个想法时,还只是啤酒泡沫里的幻影。如今铜牌上的每一个字,都沉甸甸地压着现实的分量。
“指纹锁装好了。”张远航从门里探出头,手上还沾着电缆绝缘皮的碎屑。这位直博第三年的学长,为了这个实验室推迟了出国交流计划,“进来看看,超净间达到千级标准了。”
实验室里还弥漫着新刷环氧树脂地坪漆的气味。主实验区中央,量子计算原型机像个沉默的巨兽蹲在防震台上。它的外壳是半透明的,能看见内部铜制线圈的冷光,和光纤如神经网络般缠绕。
王奕蹲在角落调试服务器,屏幕蓝光映着他严肃的侧脸。这位曾经的创业大赛冠军,如今西装外套随意搭在椅背上,衬衫袖子卷到手肘,完全看不出曾是个能把任何技术聊成生意的“商人”。
“科技部的批文下来了。”他头也不抬地说,手指在键盘上飞舞,“五百万启动资金,但条件苛刻——两年,三篇顶刊,或者一项可产业化的核心技术。”
陈默走到窗前。窗外是清华的秋天,银杏大道金黄灿烂,学生们抱着书本穿行如织。而窗内,是另一个世界——精密仪器、低温设备、缠绕的线缆,还有悬在头顶的倒计时。
张远航递来一杯热茶,茶叶在杯底缓缓舒展。“最难的是第一篇。”他说得平淡,但陈默听出话里的重量,“没有《自然》《科学》级别的论文开路,在这个圈子里,你说什么都是噪音。”
陈默点头。他太清楚了。学术圈的阶梯陡峭得近乎残酷,每一级都需要用成果当垫脚石。U盘曾展示过未来那些颠覆性论文,但他明白,那些荣耀属于2045年的“陈默”,不属于现在这个二十一岁、除IOI金牌外几乎空白的年轻人。
“从最痛的痛点开始。”他放下茶杯,走到白板前。白板擦得很干净,反射着顶灯的冷光。
马克笔与板面摩擦,发出细碎的沙沙声。陈默写下第一个问题:“量子近似优化算法(QAOA)在NISQ时代的效率瓶颈”。
张远航吹了声口哨——那是技术人遇到真正挑战时的本能反应。“IBM和谷歌的顶级团队,在这个问题上卡了两年。”他走到陈默身边,盯着那几个字,“纯量子框架走到头了,噪声太大,相干时间太短,深量子电路根本建不起来。”
“那就别建。”陈默在“纯量子”三个字上画了个圈,又在旁边写下“经典”,“如果允许中间态呢?”
他在白板上画了两个相交的圆,像维恩图,但重叠部分被刻意加重。“像钟摆,”陈默继续画着,“单摆规则,双摆混沌。但如果我们在混沌边缘寻找稳定点...”
王奕终于从服务器前抬起头:“你是说,主动引入噪声?”
“不是引入,是利用。”陈默的眼神变得锐利,“传统思路是把噪声当敌人,拼命压制。但如果,有些噪声可以成为燃料?”
实验室陷入短暂的沉默。只有服务器风扇持续的嗡嗡声,像某种背景心跳。
这个想法太疯狂,疯狂到让人第一反应是摇头。但张远航没有摇头,他走到白板前,拿起另一支笔,在重叠区域画了几个点:“量子比特的退相干,本质是系统与环境耦合。如果耦合是可控的...”
“那退相干就可以被引导。”陈默接过话,“而不是被动承受。”
王奕站起来,走到咖啡机旁。他倒了三杯咖啡,动作很慢,像在思考。“所以我们要做的,”他把咖啡递过来,“不是造更纯的量子态,而是造一个...量子-经典混合态?”
“一个在边界上跳舞的系统。”陈默说。
窗外天色渐暗。实验室的灯自动亮起,在白板上投下清晰的影子。三个人站在那片光影里,像站在某个未知领域的入口处。
实验从搭建模拟平台开始。
陈默负责算法框架。连续三天,他睡在实验室角落的行军床上,醒来就面对三块连屏显示器——左边跑量子模拟,中间是经典算法对比,右边实时可视化。屏幕的光在他脸上变幻,像是不同世界的窗口。
第四天凌晨三点,他在调试一个量子门序列时,手指突然停在半空。
屏幕上,代表量子比特态矢量的箭头,在演化过程中出现了异常分岔。不是平滑过渡,而是像树枝分叉,一分为二,二分为四...
陈默凑近屏幕,鼻尖几乎贴到玻璃上。他调出历史数据,对比不同参数下的演化路径。在某个特定区间,这种分岔反复出现。
“远航,”他的声音在寂静的实验室里格外清晰,“调出3号比特的弛豫曲线,全部历史数据。”
张远航从隔壁房间冲进来,眼罩还歪在头上。他扑到控制台前,手指在触控板上飞快滑动。曲线图一张张弹出,在墙上拼接成巨大的瀑布图。
“这不可能...”张远航喃喃道。他反复校准坐标轴,怀疑是显示错误,但数据顽固地保持原状——在某些参数下,量子退相干不是教科书上标准的指数衰减,而是出现了周期性的震荡,像衰减的正弦波。
物理学定律被违背了。
或者说,他们触碰到现有理论尚未描述的领域。
陈默靠在椅背上,盯着那些曲线。阳光从东窗射入,正好照亮屏幕上最异常的那段数据。光柱里有尘埃飞舞,缓慢旋转,像是某种隐喻。
“除非...”张远航开口,又停下,似乎在斟酌用词,“除非系统自发形成了某种结构。噪声不是破坏秩序,而是...建立了新秩序?”
这个词触动陈默的某根神经。他猛地站起,椅子在地面划出刺耳声响。
“我出去一趟。”
清华图书馆的老馆,清晨六点还没开门。陈默坐在台阶上,晨露打湿了他的裤脚。他想起备战IOI的日子,那时他以为算法就是一切,物理、化学、生物都是“别的学科”。现在他明白了,世界是一个整体,人为划分的学科只是认知的便利,而非真理的边界。
门开了。他直奔三楼自然科学阅览室,在分类号QC开头的书架前停下。手指划过书脊——《统计力学》《非平衡态热力学》《复杂系统导论》...这些书名对他而言几乎陌生。
他抱了一摞到角落的座位。翻开普利高津的《从存在到演化》,前言第一句就击中了他:“传统物理学研究存在,我们要研究演化。”
演化。动态。过程。
量子计算不也是演化过程吗?量子态随时间演化,与环境交互,退相干...这不就是开放系统的演化吗?
陈默开始抄笔记。他的笔迹很快,有时潦草到自己都难辨认。公式、图表、批注,在纸上蔓延。偶尔他会停下来,盯着某个方程发呆,然后在旁边画个问号。
中午林雨晴找来时,陈默面前已经堆了十几本摊开的书,笔记本写了半本。
“吃饭。”她把饭盒放在桌上,“张远航说你在这泡了六个小时。”
陈默抬头,眼神有些恍惚,像是刚从很深的地方浮上来。“雨晴,”他声音沙哑,“你说,如果量子退相干不是错误,而是特征...就像湍流不是层流的错误,而是另一种流动状态?”
林雨晴坐下来,翻开他的一页笔记。上面画着奇怪的图示,像是水流分岔,又像是树枝生长。
“我爷爷研究湍流时,”她慢慢说,“发现完全层流和完全湍流之间,有个过渡区。那里最不稳定,但也...最丰富。”
“最丰富。”陈默重复这个词,眼睛亮起来。
他三口两口吃完饭,又埋进书堆。林雨晴没走,她从自己包里拿出《偏微分方程数值解》,安静地在一旁看起来。阳光从高窗斜射,把两人的影子投在长长书桌上,像两座并肩的山峰。
带着一脑子半生不熟的物理概念回到实验室时,陈默发现自己进入了某种奇妙状态——那些陌生的术语、公式、理论,开始与熟悉的算法思维碰撞、融合、反应。
他站在白板前,左边写量子线路图,右边写热力学方程,中间用箭头连接,标注“类比”“映射”“或许等价”。
张远航走进来,看到这满板的“涂鸦”,愣了几秒。“你这是...在做跨学科抽象?”
“在找共通语言。”陈默没回头,笔尖在白板上快速移动,“看这里,量子比特的布洛赫球面表示...和经典相空间的辛几何...有没有可能建立对应?”
王奕也凑过来。他不懂那些深奥的物理,但擅长看结构。“你们在造一座桥。”他指着白板上越来越多的连接线,“连接两个大陆的桥。”
实验重新设计。这一次,他们不再追求“纯”,而是主动引入可控的经典噪声源。张远航设计了精巧的微波调制系统,可以在特定频率、特定相位注入噪声。
“像是给量子比特配了个背景音乐。”他调试设备时说,“只不过这个音乐不是随机的,是精心谱写的。”
第一个完整实验跑起来那天,实验室的气氛凝重得像手术室。
陈默站在主控台前,手指冰凉。屏幕上,十二个量子比特的状态用不同颜色的小球表示,在三维虚拟空间里旋转、纠缠、分离。旁边是实时演化的波函数模方图,像起伏的山脉。
“注入第一组噪声序列。”他说。
张远航按下按钮。屏幕上,代表噪声的灰色波纹从边缘渗入,与彩色的小球相互作用。小球们开始不规则抖动,有几个颜色开始变淡——那是退相干的征兆。
“相干度下降...15%...22%...”王奕盯着数据流。
陈默的拳头握紧了。这是关键时刻——噪声既可能摧毁量子态,也可能,如果他们的理论正确,引导系统进入新的稳定构型。
“继续注入,保持序列。”
时间一秒一秒过去。屏幕上的山脉在崩塌,又在重组。某个瞬间,当相干度跌破30%临界点时,奇迹发生了——那些四散的小球突然开始同步运动,像是被无形的手重新排列。
新的结构出现了。不是初始的纯态,也不是完全退相干的混合态,而是介于两者之间的...某种有序的混合。
“稳态相干度...稳定在18%!”张远航的声音带着难以置信,“系统没有崩溃!它找到了新平衡!”
陈默长长吐出一口气,这才发现刚才一直屏着呼吸。他看向屏幕,那些小球在新的构型下稳定旋转,像是找到了在噪声海洋中生存的方式。
“记录所有参数。”他说,声音平静,但手指在轻微颤抖,“重复实验三十次。”
接下来的四十八小时,实验室进入了某种狂热的节奏。咖啡机持续工作,行军床上堆满了外套,每个人眼睛都布满血丝,但没人说累。
第三十次重复实验结束时,统计数据出炉:新方法在特定问题上的计算效率,比传统纯量子方法高27%,比纯经典方法高两个数量级。
王奕把数据表打印出来,贴在白板中央。纸上密密麻麻的数字,在灯光下像是某种神圣经文。
“我们真的...”张远航看着那行数字,说不下去。
“只是第一步。”陈默说。他走到窗前,外面夜色深沉,远处主楼的轮廓在黑暗中隐约可见。“这只是证明了可能性。要真正让人信服,我们需要解决一个真问题。”
“什么真问题?”
陈默转身,目光扫过两位伙伴:“蛋白质折叠。”
蛋白质折叠,这个困扰了生物学界半个世纪的难题,如今成了量子计算最有希望突破的战场之一。AlphaFold用深度学习取得了惊人成就,但所有人都知道,那更像是对已知模式的拟合,而非真正理解了折叠的物理本质。
“量子计算理论上可以直接模拟折叠的量子过程。”陈默在组会上解释,“但现有硬件做不到。我们的混合方法,也许能在小尺度上开辟新路。”
实验室开始出现生物学教材。张远航从生科院借来蛋白质晶体模型——那些用塑料棒和彩色小球拼接的复杂结构,立在实验台上,像是来自异世界的雕塑。
陈默开始恶补结构生物学。他白天调试实验,晚上啃《分子生物学原理》,书页边缘写满批注。有时他会拿着模型发呆,手指虚虚地沿着肽链滑动,想象氨基酸残基如何在水中旋转、折叠、寻找能量最低点。
林雨晴带来了她爷爷林远山的手稿复印件。这位早逝的科学家,在八十年代就尝试用数学模型描述蛋白质动力学。“爷爷说,生命本身就是量子-经典混合系统。”她指着手稿上的方程,“酶催化、光合作用、神经信号...都在量子与经典的边界发生。”
这句话像钥匙,打开了陈默脑中的某个锁。
他开始重新设计实验。这一次,不是简单套用量子算法到折叠问题,而是从底层重建模型——把氨基酸残基的旋转自由度映射到量子比特,把氢键、疏水作用等经典力映射到噪声场,把折叠路径视为在超高维能量曲面上的搜索。 白板被画满又擦净,再画满。不同颜色的笔迹层层叠加:黑色是量子线路,蓝色是经典优化,红色是生物学约束,绿色是物理类比...到最后,整块板子像是抽象画,只有他们自己能读懂其中的逻辑。
“这已经不是跨学科了。”王奕某天深夜看着白板说,“这是...学科熔合。”
实验设计复杂度飙升。模拟三十四个氨基酸的小蛋白,需要优化超过十万个参数。张远航把实验室的八台服务器全部联网,组成临时计算集群,跑了整整一周才完成第一轮模拟。
结果令人振奋:DQC模型找到的折叠路径,不仅比经典模拟退火快47%,而且最终构象的能量更低、更接近实验测得的天然构象。
“统计学显著性呢?”陈默问。
“p值0.0032。”张远航指着屏幕上的检验结果,“意思是,如果我们的方法无效,得到这个结果的概率只有千分之三。”
实验室里响起压抑的欢呼。王奕拍了下桌子,张远航靠在椅背上闭眼深呼吸,陈默则走到窗边,看着外面淅淅沥沥的秋雨。
雨滴打在玻璃上,蜿蜒流下。他突然想起备战IOI时,也是这样的雨天,他在机房刷题到深夜,以为那已经是“艰难”的全部。现在才明白,那只是山脚下的热身。
“但模拟只是模拟。”他转身说,“我们需要真实量子硬件的验证。” 联系硬件的过程,像一盆冷水浇在刚燃起的火焰上。
谷歌量子AI团队的回信礼貌而疏离:“感谢您的兴趣,但目前我们的云量子计算资源仅供内部和长期合作者使用。”附件里是长达二十页的申请指南,审批周期至少六个月。
IBM的答复更直接:“您的研究方向与我们的技术路线存在差异,暂无法提供支持。”
华为的量子团队倒是表示了兴趣,但委婉提到“行政流程需要时间”。中科院的设备排期已满到明年三月。
“墙。”王奕总结道,“到处都是墙。”
张远航看着原型机——那个他们亲手搭建、只有三个量子比特的小家伙。“用它。”他说。
“三个量子比特能做什么?”王奕质疑,“模拟九个氨基酸的片段都勉强。”
“那就模拟九个。”陈默说,“如果能在最小尺度上证明原理,就够了。”
这是一个近乎悲壮的决定。用最简陋的工具,去挑战最前沿的问题。
张远航开始改造原型机。为了提高那可怜的三个量子比特的利用效率,他设计了一种“压缩编码”方案——用量子纠缠态同时表示蛋白质的多个可能构象,像是把一本厚厚的书压缩成几页摘要。
改造过程持续了三天。实验室里堆满了拆开的设备外壳、散落的线缆、各种规格的螺丝。张远航跪在地上焊接电路,额头上的汗水滴在烙铁上,发出轻微的嘶声。
陈默在旁协助,递工具、读参数、记录修改。他的白大褂沾了油污,手指被螺丝刀磨出水泡,但眼神专注得像外科医生。
王奕负责后勤和记录。他用手机拍下每一个关键步骤,整理成文档。“就算失败了,”他说,“这个过程本身就有价值。”
第四天清晨,改造完成。原型机静静地立在防震台上,外壳重新装好,指示灯规律闪烁,像是沉睡后苏醒。
实验定在周六凌晨。这个时间校园最安静,电网波动最小,温度也最稳定。
周五傍晚,林雨晴带来一个保温袋。“我奶奶炖的汤,”她说,“说是补脑子。”袋子里除了汤,还有巧克力、坚果和功能饮料。
四个人围坐在实验室的小桌旁喝汤。热汤下肚,紧绷的神经稍微松弛。窗外,清华园的秋夜宁静美好,路灯在梧桐叶间投下暖黄光斑。
“想起高中竞赛时,”张远航突然说,“每次模拟赛前夜,教练也给我们送夜宵。”
“那时候觉得进省队就是全世界。”王奕笑,“现在看,那只是起点。”
陈默没说话。他想起周扬,想起实验中学的机房,想起那个发烫的U盘。所有过往如河流汇入此刻,在这个堆满仪器的房间里,在即将开始的实验前。
深夜十一点,最后检查开始。
电源冗余系统:正常。 环境监控:温度22.1℃,湿度35%,震动水平在安全阈值内。 量子比特初始化校准:完成。 噪声注入系统:待命。 数据记录系统:就绪。
陈默站在主控台前,做了个深呼吸。他的手指悬在启动键上,指尖能感觉到按键表面细微的纹理。这一刻,世界收缩到这个房间、这个设备、这个按键。
“开始。”
蜂鸣声响起。屏幕上,三个量子比特的状态指示灯从红转绿。虚拟三维空间里,代表蛋白质片段的简化模型开始演化。
前五分钟,一切顺利。系统沿着模拟预测的路径搜索,在能量曲面上缓缓下降。压缩编码方案运行良好,三个量子比特承载的信息量远超预期。
第六分钟,意外毫无征兆地降临。
2号量子比特的相干度曲线突然跳水——不是缓慢下降,是断崖式暴跌。屏幕上的红色警告弹窗接连跳出:
【量子态保真度低于阈值】 【纠缠度快速衰减】 【系统稳定性告警】
“比特退相干!”张远航喊道,“注入噪声补偿序列吗?”
陈默盯着数据流。退相干速率远超任何模拟预测,像是有什么未知因素被触发了。他大脑飞速运转——是设备缺陷?是参数设置错误?还是...蛋白质折叠问题本身有某种特殊性质?
时间在以毫秒计流失。系统濒临崩溃。 “注入噪声序列!”陈默吼道,声音在实验室里炸开,“现在!全功率!”
张远航的手指砸在按键上。
屏幕上,代表噪声场的灰色波纹以前所未有的强度涌入。传统理论会说这是危险行为——用噪声对抗退相干,如同用火扑火。
但奇迹发生了。
在超高强度噪声场的“冲击”下,濒临崩溃的系统没有解体,而是发生了某种...相变。量子比特的态矢量剧烈震荡,然后,像是被无形的手重新排列,跳入了另一个状态。
一个从未在模拟中出现过的状态。 系统在新的状态下稳定下来。相干度维持在低水平但不再下降,计算继续推进,蛋白质片段的折叠路径重新开始演化。
实验室里只有机器运行的声音。所有人都屏住呼吸,盯着屏幕上的曲线——那条曲线像悬崖边缘走出的新路,纤细但坚定。
十五分钟后,计算完成。结果弹出:比经典算法快38%,折叠构象的能量比模拟预测还要低5%。
成功了。
在硬件极限边缘,在系统崩溃的临界点上,他们成功了。
张远航第一个瘫坐在椅子上,双手捂着脸。王奕靠着墙,一遍遍看数据,像是要确认不是幻觉。陈默站在原地,感受着心脏在胸腔里狂跳的声音。
窗外的天空,开始泛起极淡的青色。一夜过去了。
庆祝只持续了十分钟。然后陈默说:“记录所有异常数据。这次的意外不是错误,是特征。”
论文写作持续三周。陈默坚持要用最严谨的学术语言,但同时要让思想清晰可辨。他白天写稿,晚上修改,有时一段话要重写十几次。
“致谢部分,”王奕在某次讨论时问,“要不要提MIT的‘量子桥’项目?”
陈默想了想:“提。还有实验中学——那些孩子的提问,让我们简化了编码方案。”
“还有我爷爷。”林雨晴轻声说。
陈默点头,在致谢列表里加上“已故林远山教授的开创性工作”。
论文投稿《自然-物理》。点击发送的那一刻,陈默感到的不是兴奋,而是某种...平静。像是长途跋涉后终于到达某个营地,可以短暂休息,但知道前方还有更长的路。
等待审稿的六周里,陈默没有停止学习。他开始系统性地补物理——从经典力学到量子场论,从热统到复杂系统。实验室的书架越来越满,笔记本摞了半人高。
他发现,每学一个新的物理概念,就会对量子计算有新的理解。原来,量子纠缠和经典相关性可以用同样的信息论框架描述;原来,量子算法中的相位估计,和信号处理里的傅里叶变换是近亲;原来,整个宇宙都在计算——星系的形成、生命的演化、思维的涌现,都是某种计算过程。
“你在建一座图书馆。”林雨晴某天看着他的笔记说,“连接所有知识的图书馆。”
“不是我在建,”陈默说,“是人类知识本来就是一个整体。我只是在擦掉那些人为划下的分隔线。”
深秋的一个雨夜,审稿意见回来了。
三位审稿人。第一位热情洋溢:“这项研究可能开辟量子计算的新范式。”第二位谨慎但肯定:“实验设计精妙,结果令人信服。”第三位...第三位的意见长达五页,逐条质疑,核心观点是:DQC模型“违背量子力学基本原理”,要求补充“严格的理论证明”。
张远航查到了审稿人身份——迈克尔·哈里森,沃尔夫物理奖得主,量子力学正统解释的捍卫者,以严谨到苛刻著称。
“这是死刑判决。”王奕脸色发白。
陈默把那五页意见打印出来,贴在白板上。他站在白板前看了整整一个小时,像雕塑。
然后他说:“他是对的。”
张远航和王奕都愣住了。
“我们的实验成功了,但理论框架确实薄弱。”陈默拿起笔,“我们需要补上数学基础。从量子开放系统理论出发,建立严格模型。”
接下来的半个月,实验室变成了数学研究所。陈默请来了清华物理系的年轻教授赵青合作,这位专攻数学物理的学者,一来就被问题的深度吸引。
白板上开始出现天书般的公式:林达尔布拉德主方程、冯·诺依曼熵、完全正映射、Kraus表示...陈默如饥似渴地学习,有时一个公式要推演一整天。
赵青很惊讶:“你物理基础不算扎实,但直觉极好。这个连接量子退相干和经典耗散结构的想法...很美。”
“美?”陈默第一次听到有人用这个词形容他们的工作。
“科学的美。”赵青指着白板上的方程,“简洁,深刻,统一。你看,这几个不同领域的方程,本质上在说同一件事——信息在不同尺度间的流动与转化。”
那一刻,陈默忽然明白了什么。他走到窗前,外面秋雨绵绵,银杏叶在雨中金黄闪亮。他想起U盘最后的信息,想起“量子寒冬源于知识割裂”那句话。
原来阻止寒冬的方法,不是造更强的量子计算机,不是写更优的算法,而是...重新连接那些被割裂的知识。让物理学家理解计算机科学家的需求,让生物学家看懂量子力学的语言,让不同领域的人坐在一起,解决共同的问题。
论文重写。这一次,正文从48页扩充到68页,附录的数学证明像一本微型的专著。赵青贡献了关键的严格证明,把DQC模型建立在坚实的数学物理基础上。
重投后第三天,编辑直接打来电话——录用。
论文在线发表那天,陈默在实验室看日出。
东方的天空从深蓝渐变为淡紫、橙红、金黄。阳光一寸寸爬上窗台,照亮那些仪器、白板、堆积如山的笔记本。夜里运行的服务器还在低鸣,屏幕上的数据流永不停息。
手机开始震动。祝贺邮件、采访请求、合作邀请...学术圈的反应比预想更热烈。《科学》杂志配发评论文章,标题是《量子计算的第三条道路?》;arXiv上的相关讨论帖以小时计刷新;MIT的玛丽亚发来长信,提议联合申请跨国项目。
但最让陈默触动的,是实验中学的李岩发来的博客链接。这个高三学生,用高中生能懂的语言,解释了DQC的核心思想。文章结尾写道:
“以前觉得科学是天才在云端做的事,我们只能仰望。现在明白了,科学更是普通人连接起来,一起探索未知。就像陈默学长说的——最好的算法,是那些能把不同思想连接起来的算法。”
王奕走进来,手里拿着最新的财务报表。“风投开始找我们了。”他说,“还有三家大厂想买技术授权。”
“你怎么想?”陈默问。
“技术授权可以谈,但实验室的控制权必须在我们手里。”王奕难得严肃,“这不是生意,这是...根基。”
张远航随后进来,眼下一片乌青但精神亢奋。“姚教授刚才找我,问我们要不要申请国家重点项目。”他顿了顿,“司徒教授让我带句话:站稳了,别飘。”
陈默点头。他知道,这篇论文只是入场券。真正的挑战刚刚开始——学术地位、科研资金、团队建设、技术转化...还有,那个始终悬在头顶的“量子寒冬”预言。
林雨晴最后到。她带来一个旧铁盒,里面是她爷爷林远山完整的手稿复印件。“爷爷临终前说,”她轻声念着手稿扉页的字,“‘真正的突破,永远发生在学科的边界,在思想的交汇处。’”
阳光完全升起来了,实验室里一片明亮。陈默看着他的伙伴们——张远航在调试新设备,王奕在规划下一步发展,林雨晴在整理她爷爷的遗稿。窗外,清华园开始新的一天,学生们抱着书本走向教室,自行车铃声清脆。
他走到白板前,擦掉旧的内容,写下新的问题:
“量子-经典混合计算在神经科学中的应用” “DQC框架的硬件实现路线图” “跨学科人才培养计划”
马克笔在白板上沙沙作响,像是某种宣言,也像是启程的号角。
第十四章 归途与远方
论文发表后的第三周,陈默在实验室的行军床上醒来,第一次不知道自己该做什么。
三个月来,他第一次没有必须调试的代码,没有必须回复的审稿意见,没有必须在截止日期前提交的申请材料。天花板还是那块天花板,日光灯还是那种惨白,但整个世界突然安静得让人不适应。
张远航推门进来时,看见陈默坐在行军床上发呆,愣了愣,然后笑了。
“傻了?”
陈默揉了揉脸:“有点。”
张远航把一杯豆浆放在他手边,杯壁还烫着,显然是刚从食堂买来的。“王奕昨天说的那个词叫什么来着——‘论文后抑郁’?发了顶刊之后的空虚感?”
“可能是。”陈默喝着豆浆,温热的液体滑入胃里,意识才慢慢苏醒,“你呢?接下来什么安排?”
张远航在对面坐下,手指无意识地敲着桌面。那是他的习惯动作,敲击频率与思考速度成正比。“我妈打了三个电话,问我过年回不回家。”他顿了顿,“这才想起来,快过年了。”
过年。
这个词对陈默而言,已经陌生得像上辈子的记忆。他最后一次在家过除夕是什么时候?高二?还是高一?竞赛、选拔、集训、比赛,年复一年,春节总是被压缩成手机视频里母亲的脸,和窗外远处模糊的鞭炮声。
“我欠她太多电话了。”陈默轻声说。
实验室的门又被推开,王奕拎着两大袋早餐进来,后面跟着林雨晴。袋子里是豆浆油条包子茶叶蛋,热气在冷空气中凝成白雾,飘散在实验室的仪器之间。
“最后一批审稿意见回完了,”王奕把食物摊在桌上,动作像摆摊,“项目申报材料下周才需要交。所以——”他故意停顿,扫视三人,“我提议,强制性休息一周。”
张远航挑眉:“强制性?”
“对,强制。”王奕掏出手机,打开日程表,“我订了个方案:除夕前,各回各家,各找各妈。初五之后,原地复活。”
林雨晴在陈默旁边坐下,递给他一个茶叶蛋。“你呢?回老家吗?”
陈默剥蛋壳的手顿了顿。碎壳一片片落在纸巾上,露出光滑的蛋白。“想回去看看。”他说,“实验中学、机房、还有...”
他没说完,但林雨晴懂了。
那个改变一切的地方,那个他第一次插上U盘的机房,那个暴雨夜的起点。
“应该的。”她说,然后低头喝豆浆,没再多问。
腊月二十六的清晨,陈默独自站在省城火车站出站口。
七年了。
七年时间足够让这座城市变得陌生。出站口换了位置,广场扩建了,对面那家他曾经买过盗版算法书的书店变成了奶茶店。他拉着行李箱站在寒风中,看着晨曦一点点染红远处的楼宇,忽然有种时空错位的恍惚感。
手机震动,林雨晴发来消息:“到家了?”
“刚到。”
“我妈让我问你,要不要来家里吃年夜饭。”后面跟着一个捂脸笑的表情。
陈默嘴角不自觉扬起:“替我谢谢阿姨,今年得陪自己妈妈。”
“那初五见。别迷路。”
收起手机,陈默拖着行李箱往公交站走。路过那家奶茶店时,他停下脚步,透过玻璃看见里面坐满了穿校服的学生——不是他那个年代的校服了,颜色款式都变了,但那种青春的气息没变。
他们围着桌子写作业、讨论题目、偶尔爆发出笑声。角落里一个戴眼镜的男生正对着笔记本电脑敲代码,屏幕上是熟悉的IDE界面,旁边摞着三本算法竞赛的书。
陈默站在窗外看了很久。
男生遇到问题了,眉头紧锁,手指悬在键盘上迟迟落不下去。另一个女生凑过去,指着屏幕说着什么。两人讨论了几句,男生眼睛亮了,飞快地敲了几行代码,然后两人击掌庆祝。
陈默忽然想起很多年前,自己也是这样,一个人在机房里熬到深夜,没有人可以讨论,没有人可以击掌。
他转身离开,行李箱轮子在瓷砖地面上滚动,发出轻微的声响。
实验中学的大门还是老样子。
铁栅栏门,门卫室,传达室窗口贴着“外来人员登记”的告示。陈默站在门口,透过栅栏看着里面的教学楼——五层,灰白色外墙,窗户整齐排列。三楼的某扇窗,曾经透出过他熬夜刷题的灯光。
“找谁?”门卫探出头来。
陈默报了王教授的名字。门卫查了查登记表,摆摆手让他进去。
校园里很安静,学生们已经放假了。梧桐树的叶子落光了,光秃秃的枝丫在冬日天空下伸展,像血管的脉络。陈默沿着主干道往里走,脚步在水泥路面上发出清晰的回响。
实验楼在校园东北角,三层的老建筑,外墙爬满了枯萎的藤蔓。陈默推开虚掩的门,熟悉的消毒水味混着轻微的臭氧味扑面而来——机房的味道。
机房在三楼。楼梯还是那种水泥台阶,边角磨损得厉害。陈默一层层往上走,手指划过墙壁,能感受到岁月留下的粗糙质感。走到三楼转角处,他停下脚步。
那里,曾经是他和周扬对峙的地方。
那个雨夜,周扬和赵志强站在走廊尽头,密谋着修改测试数据。他躲在阴影里,听着那些对话,心跳如鼓。
现在走廊空荡荡的,阳光从窗户斜射进来,在地板上投下明亮的方格。尘埃在光柱里缓慢旋转,像无数微小的星云。
机房的门虚掩着。陈默轻轻推开。
里面有人。
一个中年男人站在窗边,背对着门,看着窗外光秃秃的梧桐树。他穿着深灰色毛衣,头发比记忆中白了许多,肩膀微微佝偻。
王教授。
陈默站在门口,忽然不知道该说什么。
王教授转过身,看见他,愣了两秒。然后,那张被岁月刻下痕迹的脸上,慢慢浮现出笑容——不是客套的,是那种看见故人归来的、温暖的笑。
“陈默。”他说,声音有些沙哑,“你回来了。”
机房里只有他们两个人。
电脑都关着,屏幕漆黑一片,倒映着窗外的天光。王教授拉过两把椅子,在窗边坐下。陈默坐在对面,阳光正好落在他身上,暖洋洋的。
“我看了你的论文。”王教授说,语气平静得像在讨论今天的天气,“《自然-物理》,好样的。”
陈默不知道该说什么。千言万语堵在喉咙口,最终只挤出一句:“谢谢老师。”
王教授摆摆手:“谢什么,是你自己争气。”他顿了顿,目光落在那些电脑上,“还记得你第一次模拟赛,那道线段树超时,坐在这儿发呆。”
陈默记得。当然记得。那个暴雨夜,那个刺眼的TLE,那个改变一切的发烫的U盘。
“那时候觉得你不行,”王教授继续说,语气里没有责备,只有陈述,“基础薄弱,起步太晚,跟省城的孩子没法比。我甚至想过,劝你回去,别浪费时间。”
陈默的手指微微收紧。
“但你留下来了。”王教授转头看他,目光里有种复杂的东西——欣慰,感慨,或许还有一丝歉意,“而且走得比所有人都远。你不功利,纯热爱,习惯极好”
窗外有鸟飞过,在冬日天空中划出一道弧线。陈默看着那道弧线消失在天际,忽然问:“老师,您现在还带竞赛吗?”
“带。”王教授笑了,“带不动也得带,总得有人做这事。”他指了指机房角落,“现在这批孩子,比你那时候条件好多了。但问题也一样——焦虑,孤独,觉得整个世界就只有那几道题。”
王教授说:“你知道周扬他爸吗?周正雄。当年也是搞科研的,在咱们省城待过一阵。后来不知怎么就下海了。有人说他是被逼的,项目被砍,导师退休,走投无路。也有人说他是自己选的。谁知道呢。”
陈默想起姚教授无意中提到:“你听说过黎明计划吗?九十年代末的事。那批人里,有个叫周正雄的,后来走了另一条路。可惜了,他当年是林远山最看重的学生。”
“我遇到过一个学生,”王教授说,声音变得很轻,“去年省选落选了,一个人在机房哭到深夜。我陪他坐到凌晨,什么都没说。后来他问我:‘老师,我是不是不适合学这个?’”
“您怎么回答?”
“我说:‘你才十六岁,着什么急。’”王教授笑了笑,“就像当年应该对你说的——别着急,慢慢来。”
陈默垂下眼。阳光照在他手背上,能看见细微的绒毛在光里发亮。
“老师,”他抬起头,“我想请您帮个忙。”
“说。”
“以后如果有学生迷茫的时候,告诉他们——”陈默顿了顿,组织着语言,“告诉他们,有人曾经也迷茫过,但现在很好。告诉他们,算法之外,还有别的东西。告诉他们,可以找我聊聊。”
王教授看着他,看了很久。
然后,老人伸出手,拍了拍他的肩膀。那只手粗糙但温暖,带着粉笔灰和岁月的气息。
“好。”王教授说,“我答应你。”
离开学校时已是黄昏。
夕阳把教学楼染成暖橙色,梧桐树的枝丫在天空画下细密的剪影。陈默站在校门口,回头看了最后一眼。三楼那扇窗,正反射着落日的光芒,像一颗燃烧的星。
手机响了。张远航发来照片——他家的年夜饭准备现场,案板上摆满了饺子馅,旁边一只猫蹲着监工。配文:“我妈说你必须来吃一顿,我说行,初五带人回来。”
陈默笑着回复:“一言为定。”
紧接着王奕的消息:“融资意向书初稿发你邮箱了,初五之前别看,这是强制性休息的补充条款。”
然后是林雨晴:“我妈问你想吃什么馅的饺子。”
陈默握着手机站在暮色里,忽然觉得很暖和。
不是阳光的暖——太阳已经落下去了——是那种从胸口漫开的、让人想微笑的暖。
他回复林雨晴:“韭菜鸡蛋。”
然后收起手机,拖着行李箱走向公交站。
下一站:医院。
县医院的病房在五楼,朝南,白天有很好的阳光。
陈默推门进去时,母亲正靠在床头,手里拿着一本杂志——封面是他论文的截图新闻。她戴着老花镜,看得认真,连有人进来都没察觉。
“妈。”
母亲抬起头,愣了愣。然后,那双眼睛里迅速蓄满了泪。
陈默走过去,在床边坐下,握住母亲的手。那双手比他记忆中更瘦了,皮肤松弛,血管凸起,但温度还在,暖意还在。
“瘦了。”母亲说,声音哽咽。
“您也瘦了。”
“胡说,我胖了两斤。”母亲抹了抹眼角,笑了,“护士站有秤,我天天称。”
陈默没戳穿她。床头柜上那一排药瓶,每一个他都认得。张远航给他的收据,每一张他都留着。但他只是握着母亲的手,感受着那熟悉的温度。
窗外的夕阳正在沉落,把病房染成温暖的橙红色。远处有炊烟升起,是有人在准备晚饭。楼下传来孩子们的笑闹声,应该是放寒假的学生在院子里玩。
“妈,”陈默轻声说,“年后我要回北京了。实验室还有很多事。”
母亲点头:“应该的。”
“但以后每个月,我都回来一次。”
母亲看着他,眼角的皱纹在夕阳里显得格外清晰。“不用每个月,工作要紧。”
“我想回来。”陈默说,握紧母亲的手,“以前回不来,是因为怕回来。现在不怕了。”
母亲没再说什么,只是轻轻拍了拍他的手背。
夕阳完全沉下去了,窗外亮起零星的灯火。陈默靠在床边,握着母亲的手,听着她渐渐平稳的呼吸声,忽然想起很多年前,自己也是这样靠在母亲身边,听她讲故事,慢慢睡去。
时间是一条河。有些东西会被冲走,有些会沉淀下来,成为河床的一部分。
除夕前一天,陈默坐上了去往西南的火车。
这是他临时起意的决定。离开医院后,他在手机上订了张票——没有明确的目的地,只是想走一走,看一看。王奕说得对,强制性休息,那就真的休息。
火车在夜色中穿行。窗外的风景从平原变成丘陵,从丘陵变成山川。隧道一个接一个,光明与黑暗交替,像某种节奏。陈默靠在窗边,看着自己的倒影浮现在玻璃上,与外面的山川重叠。
凌晨时分,火车在一个小站停下。陈默下了车,站在空荡荡的站台上。站名他已经记不清了,只知道这里是山区,周围是黑沉沉的山影,头顶是密布的繁星。
空气清冽,有松木和霜的气息。
他沿着站台往前走,走到尽头,站在栏杆边。远处有隐约的犬吠,近处有风吹过树梢的沙沙声。头顶的星星多得让人眩晕——银河横跨天际,每一颗都清晰得仿佛能触摸。
陈默仰头看着那些星星,想起开普敦的夜空,想起南十字星和麦哲伦云。那时的星空与此刻不同,但又如此相似。无论身在何处,人类仰望的都是同一片宇宙。
手机震动。林雨晴的消息:“到哪了?”
陈默拍了张星空的照片发过去。
“这是哪?”
“不知道。一个小站。”
“一个人?”
“嗯。”
过了很久,林雨晴回复:“回来的时候,给我带块石头。”
陈默笑了:“好。”
火车再次启动的汽笛声响起。陈默转身走向车厢,脚步在站台上发出清晰的回响。上车前,他回头看了一眼——黑沉沉的山,璀璨的星空,还有那个不知名的小站。
他把这一切记在心里,像保存某种珍贵的标本。
大年初二,陈默站在长江边。
这是三峡的某处,两岸山峰如削,江水在峡谷间奔流。冬季的水位很低,露出赭红色的岩壁,像大地裸露的骨骼。一艘货轮正逆流而上,发动机的轰鸣在峡谷间回荡,又渐渐消失在远方。
陈默沿着江边的栈道走了很久。栈道是近年修建的,木板铺成,蜿蜒在悬崖峭壁之间。有些路段能看到古栈道的遗迹——石壁上凿出的孔洞,曾经插着支撑栈道的木桩。古人就是用这种方式,在绝壁上开出了通途。
他停下脚步,看着那些孔洞。
两千年前,有人在这里凿石架木。他们没有挖掘机,没有炸药,只有锤子和凿子,用血肉之躯在石壁上开出路来。他们不知道这条路会通向哪里,不知道走过这条路的人会去往何方。他们只是凿着,一代又一代,让路一寸一寸向前延伸。
陈默忽然明白了什么。
科学探索不也是这样吗?每一个研究者都在凿着自己的那一段石壁,不知道最终通向哪里,不知道后来者会走多远。但只要有路在,就总会有人走过去,走得更远。
他掏出手机,给张远航发了条消息:“你知道古栈道怎么修的吗?”
张远航秒回:“你大年初二在思考这个?”
“快说。”
“石壁上凿孔,插木梁,铺木板。一锤一锤凿,一寸一寸挪。”
陈默看着那行字,笑了。
他又发了一条:“我们也在凿孔。”
张远航过了很久才回复:“懂了。那你凿你的,我凿我的,等路通了,一起走。”
险就一身乾坤精 我心依旧望苍天
大年初四傍晚,陈默回到北京。
火车缓缓驶入北京西站时,天已经黑了。城市的灯火在窗外铺展开来,像另一种星空——高楼是发光的山脉,车流是流动的银河。陈默靠在窗边,看着那些灯火越来越近,最终被站台遮住。
出站口,三个人站在那里等他。
张远航裹着厚厚的羽绒服,手里拎着一袋东西。王奕西装外面套了件冲锋衣,不伦不类但暖和。林雨晴围着一条红色围巾,在人群中格外显眼。
陈默走过去,还没开口,张远航就把袋子塞进他手里。
“我妈包的饺子,韭菜鸡蛋,热着呢。”
陈默捧着袋子,温热透过塑料袋传到手心。袋子外面还贴着便签,上面是手写的字:“给默默——阿姨”
“我也有。”林雨晴递过来一个小盒子,“给你带的石头,就当你从那个小站带回来的。”
陈默打开盒子,里面是一块光滑的鹅卵石,青灰色,有白色的纹路,像河流的画。
“这是我小时候在长江边捡的。”林雨晴说,“放你那。”
王奕拍了拍他的肩膀:“走吧,实验室暖气开了,冻不死。”
四个人走出车站,汇入人潮。北京的冬夜寒冷刺骨,但陈默只觉得暖和——从手心,从胸口,从那些不用言语就能明白的地方。
实验室还是老样子。
只是桌上多了几样东西:张远航家带来的腊肉,王奕公司的定制台历,林雨晴奶奶织的毛线杯套。陈默把那块石头放在窗台上,和那些收据、笔记本、打印出来的论文放在一起。
白板上还留着他走之前写的那些问题。但现在,下面多了几行新字:
张远航的笔迹:“量子噪声调制的新方案,回来讨论。” 王奕的笔迹:“融资意向书已过会,等签字。” 林雨晴的笔迹:“爷爷手稿里有个线索,可能和你的古栈道有关。”
陈默站在白板前,看着那些字,忽然笑了。
“笑什么?”林雨晴递给他一杯热水。
“没什么。”陈默接过水杯,看向窗外。
北京的夜色无边无际,万家灯火像散落的星星。远处的写字楼还亮着加班的光,近处的路灯连成温暖的光带。更远的地方,他能想象出那些他刚刚走过的路——火车站、医院、母校、长江边的小站、不知名的山。
那些路连接着这里,连接着这间堆满仪器的实验室,连接着这三个陪他一起凿孔的人。
“明天开始干活?”张远航问。
陈默摇摇头:“明天休息。后天开始。”
王奕挑眉:“后天?”
“后天初六,按传统,该开工了。”陈默转身,看向他的伙伴们,“但今晚——”
他顿了顿,看着那三张熟悉的脸,看着窗台上的石头和腊肉,看着白板上那些并肩写下的字。
“今晚我想请你们吃饭。”
张远航笑了,王奕笑了,林雨晴也笑了。
窗外,北京的夜空看不见星星,但陈默知道它们在那里。就像他知道,那些看不见的星星、那些还没凿通的路、那些尚未解决的问题,都在那里。
等着他们。
深夜的烧烤摊,炭火在寒夜里烧得正旺。
四个人围坐在塑料桌旁,桌上摆满了烤串和啤酒。张远航在讲他家里的猫,王奕在吐槽那个难缠的投资人,林雨晴安静地听着,偶尔插一句。陈默靠在椅背上,看着他们,感受着这一刻的平常与珍贵。
“对了,你们知道周正雄吗?”,林雨晴愣了一下,把一张照片递给了陈默,照片上是林远山和几个学生的合影,其中一个年轻人被红笔圈出,旁边林远山手写:“正雄天赋最高,但愿他走对路。” 另一页有林远山的日记片段:“正雄今天来找我,说想继续黎明计划,哪怕用别的方式。我劝他放手,他不听。这孩子,眼里有火,也有危险的东西…………”
第十五章 零点
上海浦东,凌晨三点。
周扬站在落地窗前,看着下面流淌的车河。陆家嘴的灯火彻夜不眠,东方明珠的光柱刺破雾霾,在低垂的云层上晕开一团浑浊的光晕。他的倒影浮在玻璃上——西装笔挺,领带规整,但眼底有掩不住的疲惫。
“第三十六次失眠。”他对着玻璃里的自己说,声音很轻,像自言自语。
身后传来轻微的键盘敲击声。整个开放办公区还有七八个人在工作,屏幕的光在他们脸上投下蓝白色的阴影。没有人说话,只有此起彼伏的敲击声,像某种秘密的暗号。
周扬转身,穿过一排排工位。墙上贴满了公式推导和架构图,有些用红笔圈出,标注着“核心”“紧急”“量子退相干解决方案”。尽头是他的独立办公室,玻璃隔断,百叶窗半掩着。
推开门,办公桌上三块屏幕同时亮着。左边是实时监控的数据流——那上面有几百个名字,都是零点在全球范围内追踪的目标对象。陈默的名字排在第三位,后面标注着“核心目标,优先级S”。
周扬盯着那个名字看了很久。
然后他打开中间的屏幕,调出一份加密文档。文档的标题是《火种计划·执行方案》,最后修改时间是三天前。
方案的第三页,有一行被红色高亮标注的文字:
“如目标无法收编,执行清除程序。技术提取优先级高于目标人身安全。”
周扬的手指悬在键盘上方,久久没有落下。
零点组织的总部不在人们想象的那种地下基地里。
它在上海最繁华的CBD,占据着某栋写字楼的四十七到五十一层。前台贴着“星海科技”的logo,员工进出要刷三次卡,电梯需要虹膜识别。对外,它是一家低调但实力雄厚的人工智能公司;对内,它是全球最大的技术掠夺者、专利海盗、以及——用创始人周正雄的话说——“知识市场的收割者”。
周扬第一次真正理解父亲的事业,是在十五岁那年。
那天他放学回家,推开书房的门,看见父亲正在和几个陌生人谈判。桌上摆着一摞现金和一沓专利证书。父亲的表情他从未见过——不是平时那种温和的笑,也不是对员工时的威严,而是一种...冰冷的专注。像猎手看着已经落网的猎物。
那几个人离开后,周正雄看见站在门口的儿子,愣了一秒,然后笑了:“扬扬,过来。”
周扬走过去。父亲把一张专利证书递给他:“知道这是什么吗?”
“专利。”
“对。但你知道专利是什么吗?”周正雄靠进椅背,目光越过儿子,落在窗外的城市天际线上,“专利不是发明,是武器。谁拿着它,谁就能决定谁可以活下去。”
十五岁的周扬不太懂,但他记住了父亲的眼神。
后来他懂了。
零点做的,从来不是买断技术。他们是掠夺。用高薪挖走核心研究者,用手段逼垮竞争对手,用法律诉讼拖死独立发明人,用各种合法或不合法的方式,把别人的成果变成自己的资产。
“知识就是权力。”父亲常说,“但权力从来不会主动分享。你要么收割别人,要么被别人收割。”
周扬进入信息学竞赛,是父亲的命令。
“竞赛圈是最好的狩猎场。”周正雄说,“那些孩子,年轻,聪明,野心勃勃。给他们一点饵,他们会咬住一辈子。零点最核心的算法库里,有一半来自IOI选手的‘贡献’——他们甚至不知道自己贡献了什么。”
周扬照做了。他成了零点在竞赛圈的“猎手”,用自己“天才少年”的身份接近那些最有潜力的选手。他给他们提供“优化工具”——那些表面上能提升代码效率的插件,实则是零点的数据采集器。每个用过的选手,都会在不知不觉中把自己的算法习惯、思维模式、甚至创新灵感上传到零点的服务器。然后零点会用这些数据训练自己的模型,生成新的算法,申请新的专利。
那些选手永远不会知道,自己的灵光一现,变成了别人保险柜里的资产。
“这叫知识萃取。”父亲笑着解释,“他们贡献原料,我们加工成品。他们得到虚荣,我们得到实质。双赢。”
周扬没有反驳。但他开始做噩梦。
陈默的出现,打乱了零点精心编织的网。
第一次注意到这个县城来的转学生,是在一次普通的训练赛上。周扬看完他的代码,皱起眉头——那是一种他从没见过的东西。结构混乱但效率惊人,语法粗糙但想法新颖。像是某个深山里突然冒出的野路子高手。
“有意思。”周扬对赵志强说,“查查他。”
调查结果让他更困惑了:半路出家,起步极晚,基础薄弱。这样的人怎么可能写出那种代码?
除非——有人在帮他。
周扬把这个推测告诉了父亲。周正雄听后沉默了很久,然后调出陈默在OJ上的所有提交记录。零点分析团队用了三天,得出了一个让所有人都震惊的结论:
“这个人的代码里,有量子特征。”
周扬不懂什么叫量子特征。父亲解释:“就是普通人写不出来的东西。需要量子思维,需要在那个尺度上理解计算。全球能写出这种代码的,不超过二十个人。而那些人,都在我们的监控名单里。”
“所以他背后有人?”
“不是背后。”周正雄盯着屏幕上陈默的照片,眼神变得危险,“是里面。他身上有东西。可能是设备,可能是植入物,可能是某种我们不知道的技术。”
周扬后来才明白父亲的意思——陈默不是被什么人指导,而是被什么东西“附身”了。那个U盘,那个从旧书店里捡到的U盘,里面封存着某种来自未来的、能够直接写入人脑的知识。
“找到它。”父亲下了命令,“拿到那个U盘,或者提取他脑子里的代码。不管用什么手段。”
周扬照做了。他用尽一切手段:在选拔赛上制造意外,在省赛时布设嗅探器,在全国赛动用所有资源。但每一次,陈默都像有预感一样避开陷阱。最后一次,嗅探器在开普敦的展厅里过载烧毁——林雨晴那个该死的发绳竟然有量子干扰功能。
周扬永远忘不了父亲那一刻的眼神。
不是愤怒。是危险。
“他身后有人。”周正雄说,声音冷得像冰,“那个丫头,她爷爷林远山——黎明计划的核心成员。他们手里有我们不知道的东西。”
周扬想说什么,但父亲抬手制止了他。
“从现在开始,陈默由我亲自处理。”周正雄看着屏幕上的照片,眼神里闪过一丝周扬从未见过的东西,“这个猎物,太重要了,不能交给你。”
那之后,周扬被排除在核心行动之外。他依然是零点的“少东家”,依然是竞赛圈的“天才”,但他再也接触不到关于陈默的绝密信息。
他只知道,父亲派出了更专业的人。
零点总部五十一层,只有一间办公室。
周正雄的办公室。
这层楼没有窗户,四面墙壁都是显示屏,实时滚动着全球各地的数据——股市、专利申报、学术论文预印本、暗网交易、各国实验室的能耗曲线...所有数字都在流动,像这个世界的血液。
周正雄坐在唯一一张椅子上,面对着这片数据海洋。
他已经六十二岁了。头发全白,但修剪整齐;脸上皱纹很深,但眼神依然锐利,像鹰。手腕上戴着那枚蛇形电子纹身的手表,表盘上跳动的数字是他血压的实时监测——医生说他的心脏已经撑不了几年了。
但他还不想死。
不是因为怕死,是因为还有事没做完。
屏幕上,陈默的照片被放大。旁边是他的全部资料——从出生证明到最近的论文发表,从每一次考试的成绩到每一笔银行流水。零点的情报系统把这年轻人扒得干干净净,但周正雄知道,真正的秘密不在这些数据里。
真正的秘密,在那个已经损坏的U盘里。
或者说,在陈默的脑子里。
门无声地滑开,一个穿黑色中山装的中年男人走进来。他是零点的技术总监,代号“蛇头”,负责所有“特殊项目”的执行。
“安排好了。”蛇头的声音平静得像在汇报天气,“陈默母亲的主治医生是我们的人。下个月复诊时,会有一个‘意外’。”
周正雄没有回头:“说具体。”
“药物过敏。很罕见的那种,但确实存在。抢救及时的话,不会有生命危险——但足以让陈默分心。他母亲是他唯一的软肋,只要这里出问题,他的注意力就不可能集中。”
“然后呢?”
“然后我们会‘恰好’出现在他身边。提供帮助,建立信任,接近那个U盘的秘密。”蛇头顿了顿,“如果他配合,一切好说。如果不配合——”
他做了个手势,干净利落,像切水果。
周正雄终于转过头,看着蛇头。
“他脑子里的东西,”周正雄说,“能提取出来吗?”
“理论上有70%的把握。但需要时间,需要设备,需要他活着。”蛇头指了指自己的太阳穴,“意识提取不是拔硬盘,拔坏了就什么都没了。”
周正雄沉默了很久。
屏幕上的陈默还在那里,年轻,专注,对未来一无所知。像一只蝴蝶,不知道自己已经被钉在了标本板上。
“先按第一个方案走。”周正雄最终说,“让他欠我们人情。如果他识相,我们可以温和一点。”
“如果不识相?”
周正雄没有回答。他只是看着屏幕,眼神平静得像冬天的湖面。
但蛇头懂了。他跟了周正雄二十年,早就学会了从沉默中读出答案。
他点点头,无声地退出去。
周扬知道这一切吗?
他只知道一部分。
他知道零点在监控陈默的母亲。他知道父亲的团队在研究某种“意识提取”技术。他知道那个代号“蛇头”的男人每周都会向父亲汇报进展。
但他不知道细节。
不是不想知道,是父亲不让他知道。
“你太软。”周正雄有一次说,语气里没有责备,只有陈述,“你适合做技术,不适合做决策。等你再狠一点,再来找我。”
周扬站在父亲办公室里,看着满墙的数据海洋,忽然觉得很冷。
他想问:您当年也是这样对爷爷的吗?
但他没有问出口。
因为他知道答案。
周正雄的父亲——周扬的爷爷——是个普通的中学教师,教了一辈子数学,清贫但满足。周正雄年轻时最恨的,就是父亲的“软弱”——明明有能力赚更多,明明有机会往上爬,却偏偏守着那三尺讲台,说什么“教书育人”。
后来周正雄发达了,给父亲买了大房子,请了保姆,但老人一天都没住过。他留在那个小县城,继续教他的书,直到死在讲台上——心脏病突发,手里还握着粉笔。
葬礼上,周正雄没有哭。他只是站在灵前,看着父亲的遗像,说了一句话:
“您选择您的路,我选择我的。谁对谁错,等见到您那天再讨论。”
周扬站在旁边,听见了那句话。
从那天起,他知道自己永远不可能成为父亲期待的那种人。因为他像爷爷——太软。
但他也永远无法摆脱父亲。因为血液里流着的,是同样的东西。
周正雄站在数据海洋中央,忽然想起三十年前那个雨夜。
中科院那间简陋的实验室里,林远山坐在一堆仪器中间,头发乱糟糟的,眼镜片上全是水雾。周正雄站在他面前,手里攥着刚收到的通知——项目经费被砍,团队解散,所有数据封存。
“老师,我们还能继续吗?”他问,声音发紧。
林远山抬起头,看着他。那眼神他永远忘不了——疲惫,悲伤,但平静。
“正雄,”林远山说,“有些事,不是你想继续就能继续的。学会放手。”
周正雄没有放手。
他用另一种方式继续了——先做技术咨询,再做专利代理,然后做专利囤积,然后做技术垄断。每一步都离那个雨夜的实验室更远,每一步都离林远山说的“对的路”更偏。
但他告诉自己:我没有放弃。我只是换了一种方式。
三十年过去,他终于站在了这里。拥有了一切——财富、权力、技术、人脉。但每次深夜醒来,他依然会想起那个雨夜,想起林远山的眼神,想起那句“学会放手”。
他没有学会。
所以他必须证明,自己没有错。
“执行窗口:陈默母亲复诊后第七天。届时目标情绪最脆弱,防备最松懈。”
周正雄从没告诉任何人这个方案的全部内容。包括周扬,包括蛇头。
但他已经准备好了。
三十年前,黎明计划剥夺了他的一切——导师、事业、信仰。他被迫从科学家变成商人,从研究者变成掠夺者。
三十年后,他要拿回本该属于他的东西。
用任何手段。
周扬离开总部时,天已经快亮了。
东方泛起鱼肚白,陆家嘴的楼群在晨光中渐渐清晰。他站在大楼门口,看着那些逐渐亮起来的窗户,忽然想起很多年前,父亲带他去郊外看流星雨。
那晚的星空真干净。父亲指着天空,告诉他每一颗星星的名字,告诉他宇宙有多大,告诉他——总有一天,人类会理解这一切。
那时候的父亲,眼睛里没有冰冷,只有光。
周扬不知道那个父亲还在不在。也许早就死了。也许从来不存在,只是他童年的幻觉。
他掏出手机,看着屏幕上那个名字——陈默。
零点监控系统显示,陈默此刻正在清华的实验室里,和同伴一起熬夜。他的生命体征数据一切正常:心率、血压、睡眠周期...所有指标都表明,这是一个健康的、专注的、对未来充满希望的年轻人。
他不知道,有人正在计算他的死亡日期。
周扬盯着那些数据看了很久。
然后他收起手机,转身走进晨光里。
他没有回头。
但他知道,从今天开始,有些东西再也回不去了。
同一时刻,北京清华园。
陈默从梦中醒来。
窗外天还没亮,实验室里只有服务器运行的低鸣。他躺在行军床上,看着天花板,心跳得厉害。
刚才的梦里,有人站在黑暗中看着他。他看不清那人的脸,但能感觉到目光——冰冷的,专注的,像猎手看着猎物。
他坐起来,走到窗边。
窗外的清华园还在沉睡。梧桐树光秃秃的枝丫在夜风中轻轻摇晃,远处主楼的轮廓在夜色中隐约可见。一切都很平静。
但陈默总觉得,有什么东西在靠近。
他不知道那是什么。
但他知道,从今天开始,有些东西再也回不去了。
第十六章 暗流涌动
北京初冬的第一场雪来得猝不及防。
陈默站在实验室窗前,看着雪花在夜风中旋转飘落,将清华园的梧桐枝丫一层层染白。玻璃上映出他的倒影——黑眼圈深重,下颌线条因消瘦而更加分明,但眼神比一年前沉淀了许多,像一口深井,表面平静,底下藏着看不见的暗流。
"又在发呆?"张远航的声音从身后传来,带着熬夜过度的沙哑。他揉了揉布满血丝的眼睛,指尖在太阳穴上停了片刻,"数据跑完了,你看看。"
陈默转身走向主控台。屏幕上,量子退相干的新模型正在运行,蓝色曲线平稳地起伏,像某种微弱的心跳。他凑近细看,手指在触控板上滑动,放大某个异常波动的区域。指尖划过屏幕时,他注意到了自己微微颤抖的指节——不是因为冷。
"这里,"他指着曲线上的一个小凸起,"第三次出现了。同样的位置,同样的幅度。"
张远航凑过来,下巴几乎要搁在陈默肩膀上。屏幕的蓝光映在他疲惫的脸上,衬出眼下的青黑。"巧合?"他的声音带着一丝不确定。
"概率低于千分之一。"陈默直起身,揉了揉酸涩的眼睛,眼皮底下传来细微的刺痛感,"我们的系统里,有不属于我们的东西。"
实验室陷入短暂的沉默。服务器风扇的低鸣填补了空白,像某种背景噪音,又像这间密室的呼吸。窗外,雪花继续飘落,在路灯的光晕中旋转,无声地堆积在窗台上,渐渐将远处的楼宇轮廓模糊成一片朦胧的白色剪影。
门被推开时带进来一阵冷风。
林雨晴站在门口,肩上落着未化的雪,睫毛上沾着细小的冰晶。她的脸颊被冻得微微泛红,呼出的白气在室内迅速消散。她手里拿着一个牛皮纸信封,封口处盖着红色的保密章——那种只有特殊渠道才能使用的印章。
"司徒教授寄来的。"她把信封放在桌上,指尖在信封边缘停留了一瞬,像是在确认它的真实重量,"说是急事。"
陈默拆开信封,动作很轻,像在拆一件易碎品。里面是一张A4纸,打印着寥寥数行字:
"零点近期活动异常,目标转向清华。周正雄已亲赴北京。注意安全。——S.X"
纸的背面,用铅笔轻轻画着一个莫比乌斯环。线条很淡,像是不想留下痕迹,又像是画下它的人手在微微发抖。
陈默把纸递给张远航。张远航接过去时,手指在纸张边缘停顿了一瞬——那个莫比乌斯环他见过,在实验室的每一份保密文件上,在司徒玄的袖扣上,在陈默那个报废U盘的外壳上。他什么也没说,只是把纸折好放回信封。
林雨晴的目光在两人之间逡巡了一圈,然后她走到窗边,看着外面越来越大的雪。"周正雄来北京了。"她说,声音很轻,像是在自言自语,"他从来不会亲自出马。除非——"
"除非他觉得这次一定能赢。"陈默替她说完。
窗外,一只乌鸦掠过雪幕,黑色的翅膀在白色背景中划出一道凌厉的弧线,消失在远处的楼群之间。陈默盯着那道轨迹,直到它完全被雪吞没。
"我去查查监控,"张远航说,走向自己的工作站。他拉开椅子时发出刺耳的声响,像是某种警告,"最近两周校园网有没有异常访问。"
"我和王奕联系一下,"林雨晴掏出手机,屏幕的光照在她脸上,"他的公司那边可能有消息。他那些做网络安全的朋友,鼻子比警犬还灵。"
陈默站在原地,看着窗外越下越大的雪。世界正在被白色覆盖,一切变得模糊而安静,连远处主楼的轮廓都快要看不见了。但他知道,在那片白色之下,有什么东西正在靠近。他能感觉到——那种被注视的感觉又回来了,像很多年前在实验中学的机房一样,黑暗中有一双眼睛。
他下意识地摸了摸口袋里的U盘外壳。金属表面冰凉,裂痕处能摸到细微的棱角。
第二天清晨六点,天还没完全亮透。
陈默是被手机震动惊醒的。他从实验室的行军床上坐起来,颈椎发出轻微的咔嗒声。窗外天光灰蒙,雪已经停了,但天空压得很低,像一块潮湿的铅板压在楼顶。
来电显示:协和医院。
他接起来,嗓子因为睡眠不足而发干:"喂?"
"陈默同学吗?我是协和医院的刘医生。"电话那头的声音温和而职业,带着一种刻意控制的平静,"你母亲今天上午的复诊有些特殊情况,想请你来一趟。"
陈默握着手机的手指收紧了。指关节在发白,手机壳的边缘硌进掌心。"什么特殊情况?"
"别紧张,不是病情恶化。"刘医生顿了顿,电话里传来翻动纸张的窸窣声,"是我们在常规检查中发现了一些……奇怪的指标。具体需要面谈。电话里说不清。"
挂断电话后,陈默在床边坐了很久。
行军床的弹簧在他身下发出轻微的呻吟。窗外灰白的天光透过百叶窗的缝隙,在他脸上投下明暗交错的条纹。他盯着对面墙壁上那张量子门电路图,那些符号和线条在此刻变得陌生而遥远,像某种他从未学过的语言。
他听见走廊里传来张远航的脚步声,由远及近,在门口停了一下,又继续走远了。然后是水龙头打开的声音,水流撞击不锈钢水槽的声响,在清晨的寂静中被放大了无数倍。
陈默站起来,走到洗手台前。镜子里的自己面色苍白,嘴唇干裂,眼下的青黑像两道未愈合的伤口。他拧开水龙头,冷水冲到脸上时,他才真正清醒过来。
手机又响了。这次是林雨晴。
"王奕那边有消息了。"她的声音压低了一些,背景里有键盘敲击的声响,"周正雄前天到北京,入住国贸大酒店。他的团队有六个人,其中两个是技术背景,身份不明,王奕的人在查。"
"我正好要出去一趟。"陈默擦干脸上的水,声音平静得连自己都觉得陌生,"母亲那边有点事。"
电话那头沉默了两秒。林雨晴的声音变得更轻了:"要我陪你去吗?"
"不用。你帮我盯着王奕那边的消息。"
"好。"她的声音里有一种克制的不安,"保持联系。随时。"
陈默挂断电话,开始穿外套。深灰色的羽绒服,拉链拉到顶,把领子竖起来。他摸了摸口袋,那块鹅卵石还在——林雨晴送的那块青灰色石头,白色纹路像一条蜿蜒的河流。他把它握在手里感受了一下重量,然后松开。
走出实验室时,他在门口停了一步,回头看了一眼。张远航正坐在工作站前,背影微微佝偻,三块屏幕的蓝光映在他身上,像是某种发光的茧。他听见关门声,回头朝陈默点了点头,什么也没说。
陈默轻轻带上了门。
协和医院住院部的走廊总是弥漫着那种特有的气味——消毒水、医用酒精、以及某种说不清的、属于疾病和希望混合的味道。陈默穿过挂号大厅时,脚步不自觉地加快。他的目光扫过两侧的候诊区,那些坐在塑料椅上等待的病人和家属,脸上的表情各有不同,但眼睛里都有同一种东西——等待的、悬而未决的不安。
电梯在三楼停下。门打开的瞬间,他看见了走廊尽头那扇半开的办公室门。
刘医生的办公室不大,靠墙的书架上塞满了医学杂志和病历夹,桌上有一台老式台灯,灯罩边缘有被反复触摸过的痕迹。刘医生坐在桌后,白大褂的袖口整齐地卷了两折,面前摊着一份化验单。
"请进。"他抬起头示意陈默坐下,鼻梁上的眼镜滑下来一些,被他推了回去。
陈默没有坐。他站在办公桌前,双手垂在身侧,目光落在那份化验单上。"刘医生,我母亲到底怎么了?"
刘医生摘下眼镜,揉了揉鼻梁。这个动作让他看起来比实际年龄更疲惫。他放下手,直视陈默的眼睛,开口前停顿了两秒。
"我们在你母亲的血液样本中,检测到一种不常见的药物代谢产物。正常来说,她目前的用药方案不会产生这种物质。"他的语气平稳,但话音落下时,办公室里安静得能听见空调出风口的细微气流声。
"什么意思?"
"意思是——可能有人在她的治疗过程中,加入了某种不在处方上的药物。"刘医生的目光没有移开,"这可能是医疗事故,也可能是……其他情况。我已经联系了医院保卫科,正在调取最近一周的监控记录。"
陈默感觉自己的血液在变冷。那是一种从脊椎底部升起的寒意,沿着脊柱一节节往上攀爬,最后在后脑勺汇聚成一片冰凉。他想起司徒玄的信,想起那个莫比乌斯环,想起所有关于零点组织的资料中反复出现的那两个字——"手段"。
"能查出来是什么药物吗?"
"正在做质谱分析,大概需要两天。"刘医生顿了顿,"我建议你母亲暂时转院,以防万一。我可以帮你联系北医三院的同事,那边的肿瘤科主任是我师兄。"
陈默点头。胸腔里的空气缓慢而沉重地排出。"谢谢您,刘医生。"
他转身走向门口时,刘医生在身后补充了一句:"陈默同学,监控显示最近三天有一个穿灰色大衣的男人在你母亲病房外停留过,每次大概十分钟。保卫科正在调他的正面照片。"
陈默停在门口,没有回头。"能发给我吗?"
"可以。注意安全。"
走出医院大门时,天空又开始飘雪了。极细的雪粒,落在脸上像针尖轻轻触碰。陈默站在台阶上,掏出手机。屏幕上有三条未读消息:
张远航:"校园网有异常流量,来自校外IP,加密级别很高,追踪不到源头。但可以肯定有人在往外面传数据,量不大但频率稳定。"
林雨晴:"周正雄今早离开酒店,去向不明。王奕的人在国贸跟丢了,对方换了三次车,最后消失在东三环附近。"
王奕:"你妈那边什么情况?需要我安排车吗?需要就说。"
陈默看着这三条消息,感到一种奇异的平静。不是从容,而是某种被逼到墙角后的清醒——猎物终于看清了猎手的包围圈,反而不再恐惧了。
他先给王奕回了消息:"安排一辆车,今天之内把我妈转到北医三院。车牌号发我,我让刘医生对接。"
然后他拨通了一个号码。电话响了很久,久到他以为不会有人接。就在他准备挂断时,那边接了起来。
沉默。隔着电流的细微杂音,两个人都没有说话。
"陈默。"声音带着沙哑和警觉,像一只被突然照亮的夜行动物。是周扬。
"周扬。"陈默说,声音很轻,但在安静的雪天里格外清晰,"我需要和你谈谈。"
挂断电话后,陈默站在雪地里没有动。雪花落在他的肩头、发梢,但他没有拍掉。他看着远处灰白的天际线,城市在雪中变得陌生而安静,高楼都隐没在低垂的云层里,只有近处的车流还在缓慢移动,红色尾灯在白色背景中格外刺眼。
他知道自己刚刚推开了一扇门。门后面是什么,他也不完全清楚。
但已经没有退路了。
清华西门外的咖啡店藏在一条窄巷里。
店面不大,门脸被爬山虎的枯藤半掩着,招牌上的字已经有些褪色。冬天没有顾客坐在室外,玻璃窗内侧蒙着一层薄薄的水雾,让里面的光变得柔和而朦胧。陈默选了最角落的卡座,面朝门口,要了一杯热美式。咖啡的苦香和暖意从纸杯传入掌心,但他握着杯子的手指依然冰凉。
他等了将近二十分钟。
周扬进来时,风铃叮当响了一声,带进一阵冷风。陈默抬起头,目光落在来人身上,几乎没认出他。
曾经的竞赛天才,那个总是穿着剪裁得体的名牌、脸上挂着标志性讥讽笑容的少年,此刻看起来像个被过度磨损的精密仪器。他的脸瘦得颧骨突出,下巴的线条变得尖锐,眼窝深陷下去,整个人像被某种力量从内部抽空了一部分。西装还是笔挺的,深灰色面料剪裁得体,但领带歪了,衬衫领口解开了一颗扣子,露出一小块皮肤——上面有一道淡淡的红痕,像是被什么东西反复摩擦过。
只有眼睛没有变。还是那种锐利的、藏着东西的目光,但现在那目光底下多了一层别的东西,陈默说不上来是什么。
周扬在对面坐下。他坐下来时肩膀塌了一下,一个几乎不可察觉的动作,像是终于放下了某种戒备。他看了看面前那杯咖啡,然后抬起眼看陈默。
"你还敢见我?"声音比记忆中低沉沙哑,像砂纸磨过铁皮。
"喝点热的。"陈默把咖啡推过去。
周扬盯着那杯咖啡,没有动。咖啡的热气在他的眼镜片上凝成一层薄雾,遮住了他的眼神。几秒钟后,他摘下眼镜,用衬衫袖口擦了擦镜片,重新戴上。
"你妈的事,不是我做的。"他说。声音里有一种疲惫的诚实。
"我知道。"陈默说,平静地看着他,"但你知道是谁做的。"
沉默。窗外又开始飘雪了,雪花落在玻璃上,融化成细小的水痕,蜿蜒而下,像某种无声的眼泪。
周扬终于拿起咖啡,喝了一口。他放下杯子时,手指在杯壁上停留了片刻,然后用力捏了一下。指节发白,骨节突出,像是要确认自己还握得住什么东西。
"你以为你赢了我?"他的声音带着某种压抑的东西,"你什么都没赢。你只是成了我爸棋盘上更重要的棋子。"
"那你为什么要来见我?"
这个问题悬在空气中。咖啡馆里很安静,只有远处吧台传来蒸汽打奶泡的嘶声和隐约的交谈声。周扬低着头,目光落在他自己那只用力捏着杯子的手上。手背上青筋微微凸起。
"我看了你发的论文。"他终于开口,声音很轻,"量子-经典混合模型。那里面有一句话——'真正的价值在于人类思维的无限延展'。"
他停住了。陈默等着。窗外的雪越下越大,巷子里已经积了一层薄薄的白色。
"我爷爷也说过类似的话。"周扬继续说,目光没有抬起来,落在桌面的木纹上,"他教了一辈子数学,死的时候手里还握着粉笔。我爸说他软弱,说他没有野心——"他深吸一口气,肩膀随之抬起来又沉下去,"但我最近总梦见那根粉笔。"
陈默没有接话。他看着周扬,看着这个曾经踩着他肩膀往上爬、在全校面前羞辱他、在竞赛里设局陷害他的人。那些记忆都还在,像被压进纸页里的花,干枯但形状分明。但此刻坐在这张桌子对面的,是一个完全不同的人。
"你知道为什么吗?"周扬抬起头,这次直视着陈默的眼睛,"因为我把粉笔捡起来了。那天凌晨三点,我在地下室里翻我爷爷的遗物。找到他上课用的最后一盒粉笔,盒子里还有半截没用完的。我握着那截粉笔,突然发现——"
他的声音哽了一下,喉结剧烈地滚动。
"突然发现我从来没握过粉笔。我握过键盘、握过鼠标、握过我爸的专利文件,但我从来没像他那样——在黑板上写过字。"
咖啡馆里安静极了。陈默能听见自己的心跳,平稳而缓慢。
"我一直在帮他做事。"周扬把手从杯子上收回去,放到桌下。那个动作像是某种撤退,"从竞赛开始,替他'采集'那些有天赋的小孩。用优化工具当诱饵,把他们的思维数据传回零点。你知道有多少人的想法变成了他的专利吗?"
陈默没有回答。他想起了高中时那些和他一样从县城来的孩子,他们参加竞赛的热情被一次次打压,最后放弃了这条路。
"我停不下来了。"周扬的声音更低了,"我帮他做的事,足够我坐牢坐到老死。但——"他的嘴唇动了动,像是要说一句很难出口的话,"但我看到你论文里那句话的时候,我想起了粉笔。"
他停下来,像是在审视自己说出口的每一个字。沉默蔓延了几秒,然后他从西装内袋掏出一个信封,放在桌上。
"这上面是零点在北京的所有人员名单和活动区域。"他的声音恢复了那种压低的、警惕的腔调,"还有他们计划的'收网时间表'。"
陈默没有碰信封。"为什么要给我这个?"
周扬站起身,椅子在地板上轻轻响了一声。"因为我今晚要去一趟国贸。我爸给我最后一次机会——去监控室看着他布置收网。他说,等我亲眼看到'火种计划'完成,我就不再是'太软'的人了。"
他站在那里,身形在咖啡馆暖黄的灯光下投出模糊的影子。西装的下摆有些皱了,像是一直没熨过。
"你现在把名单拿走,"周扬说,声音很轻,"我就有了一个为什么离开那里的理由。"
陈默看着周扬的眼睛。那双眼睛里有什么东西在松动,像冰面底下透出来的光,不确定,微弱,但他选择相信那一瞬间的真实。
他伸出手,拿起了那个信封。在指尖触到纸张的瞬间,他看见了周扬眼睛里一闪而过的东西——不是释然,是恐惧。是那种终于决定背叛一切之后,面对未知的、纯粹的恐惧。
"你打算去哪?"陈默问。
周扬没有回答。他从口袋里掏出手机,放在桌上,然后退了一步。"别查这个手机的位置。今晚国贸的地下停车场,B3层东侧,有一辆黑色特斯拉没上锁。钥匙在驾驶座下面。"
他转身,走向门口。风铃再次响起,冷风涌入,吹动了桌面上那杯已经半凉的咖啡的纸杯。陈默看见周扬在门口停了一瞬——他的侧脸在玻璃窗上映出轮廓,下颌线绷得很紧,嘴角微微抿着。
然后他拉开门,消失在巷子里飘落的雪中。
陈默坐回卡座,拆开信封。里面是一张折叠整齐的A4纸,打印着密密麻麻的信息。十二个人名,每个名字后面都有对应的酒店地址、房间号、活动模式和交接时间。纸的右下角标注着日期:十二月二十日。
今天是十二月十五日。
他没有立刻收起来。而是从背包里取出那台司徒玄给的电脑,将名单上的每一个地点坐标输入加密通讯软件。屏幕上,张远航昨天发来的"可疑信号源"红点逐一显示——十二个红点,与名单上的十二个位置逐一比对。
第一个,吻合。第二个,吻合。第三个到第十二个,全部吻合。
误差范围在五十米以内。
陈默盯着屏幕看了很久。那张纸上每一个坐标,都和张远航通过卫星定位监测到的异常信号完全对应。如果这是假的,那零点要伪造的工程量几乎等同于真的布防。他反复核对了三遍,每一个数据都严丝合缝。
他收起电脑,把名单折好放回信封。纸的边缘在他指尖留下细微的刺痛感,像是纸张在提醒他什么。
然后他拿起桌上那部周扬留下的手机,黑色的,没有锁屏密码。打开通讯录,里面只有一个号码,备注名是"粉笔"。他想了想,把自己的号码存了进去,备注名:"黑板"。
起身离开时,他在门口回头看了一眼。卡座上那杯周扬几乎没碰的美式已经凉透了,纸杯外壁凝着一层水珠。
陈默推开门,走进雪中。
晚上八点,清华量子-经典融合实验室的灯全亮着。
百叶窗被张远航一扇扇拉下来。林雨晴用扫描仪检查了所有电子设备,确认没有任何被动监听信号。王奕从公司调来了两个信得过的安全工程师,一个守在楼下电梯口,一个守在地下室的设备间入口。
六个人围坐在实验台旁。台上摊着那份名单和一张北京地图,地图上用红笔画出了五个圈——三个是零点人员的驻地,一个是中国国家会议中心,一个是陈默用铅笔圈起来的:国贸大酒店。
"收网时间,十二月二十日。"陈默说,"距离现在不到五天。"
张远航靠在椅背上,双手交叉枕在脑后。"从名单上看,他们的人员配置很全面——两个技术背景、三个安保经验、七个身份掩护不同职业。这种配置不是来偷东西的,是来控制场面的。"
"国贸是零点在北京的据点。"王奕接话,手指点了点地图上国贸的位置,"收网那天,他们会先在这里完成最后一次方案确认,然后分头行动。三个目标——清华校园、北医三院、还有这间实验室。"
"他们冲什么来的?"林雨晴问。
陈默沉默了几秒,站起来走向角落的保险柜。输入密码,锁芯发出沉闷的咔嗒声。
柜子里放着一个黑色铁盒。陈默取出铁盒,回到桌边,放在所有人面前。他打开盖子,里面躺着那个报废的U盘外壳——金属表面裂痕密布,像龟裂的河床,但隐约还能看见莫比乌斯环的刻痕。
"冲这个。"陈默说,"或者说,冲我脑子里和这个U盘有关的东西。"
他把U盘外壳放在桌上。张远航用手指轻轻碰了一下裂痕的边缘,又缩回手。
"零点认为,这个U盘里面封存着某种量子算法的核心密码。他们想提取出来。全国赛的时候试过一次——那个被司徒教授拦下的嗅探器,就是用来做这个的。"
林雨晴拿起U盘外壳,翻来覆去地看。"但这已经损坏了。"
"他们不知道。或者说,他们不相信。"陈默的声音变低了一些,"周正雄曾是黎明计划的核心成员。他亲眼见证过量子代码的威力。三十年来他一直在找它。"
"所以周正雄是想抢这个?"张远航问。
"不只是抢。"陈默的声音压得更低了,"如果拿不到U盘,他们会用别的方式提取。那个叫'蛇头'的人,掌握着一种意识读取技术,可以从人脑中提取特定记忆。"
实验室安静了几秒。窗外,雪被风卷起来扑打在玻璃上,发出细碎的沙沙声。
"所以我们不能被动等他们来。"陈默说,"我们需要先发制人。二十号之前,在这三天里,做三件事。"
他竖起三根手指。"第一,把周扬名单上的人盯死。十二个人,每组人跟着,不惊动,不靠近。王奕,你的人能做到吗?"
王奕点头,掏出手机开始记录。
"第二,实验室做一次完整的数据迁移演练。所有实验记录、代码库、模型参数都备份到安全的地方。远航,你来负责。"
张远航坐直了身体,在膝盖上拍了三下。
"第三——"陈默的语速放慢了,"我需要一个人,在二十号那天帮我演一出戏。"
他看着林雨晴。她没有躲开他的目光。"什么戏?"
"公开的学术报告会。清华主楼报告厅,十二月二十日上午十点。主题——'量子-经典混合计算的未来方向'。我会提前一周发邀请函,包括给零点科技。"
张远航皱起眉头:"你这是把自己当靶子?"
"对。"陈默把笔放下,发出清脆的声响,"让他们以为我在最显眼的地方。让他们把注意力集中到报告厅。然后——"他的笔尖落在国贸的圆圈上,"趁他们扑向空靶子的时候,我去这里。"
他抬起头,看着每一个人。"周正雄二十号那天会亲自坐镇国贸。收网的指挥中心就在那里。我要去见他。"
长久的沉默。窗外风雪越来越猛,能听见树枝折断的声音,偶尔有重物被风卷起撞击墙壁的闷响。但实验室里的安静是另一种——那种当所有人都明白某件事必须发生、却希望它永远不要到来的安静。
王奕第一个开口:"你一个人去?"
"不。"陈默看了看周围,"我需要两个人跟我一起。一个在明处掩护,一个在暗处接应。"
"我跟你去。"林雨晴说。她的声音很轻,但很稳。没有任何犹豫。
张远航看了看她,又看了看陈默。"那我负责暗处。你们进去的时候,我会在外面盯住所有出口。司徒教授安排的那些人,我来协调。"
陈默点了点头。他能感觉到胸口有什么东西在收紧——不是恐惧,是某种更复杂的情绪。
"这三天,"他说,"大家先做各自的事。十二月十九号晚上,在这里集合,最后一次确认方案。"
实验台上的那盏灯投下暖黄的光,照在六个人的脸上。陈默看着他们每一个人,然后伸手把U盘外壳放回铁盒,合上盖子。
"还有一件事,"他说,"我妈那边,二十号那天麻烦远航去一趟。不用做什么,就在病房里坐着。让他们知道——我留了人在那边。"
张远航睁开一只眼看了他一下,然后重新闭上。"明白。"
窗外,风雪声越来越大。实验室的灯继续亮着,在无边白色里像唯一不肯熄灭的光点。
十二月十九日晚上,陈默最后一次确认了所有安排。
王奕的人已分布在国贸周围的六个监控点。张远航调试好了通讯设备——一套加密的频率跳频系统。林雨晴在准备第二天的"报告会"资料,虽然那场报告会不会真的进行。她只需在台上站够二十分钟。
陈默坐在实验室角落,手里握着那个U盘外壳,看着窗外北京的夜色。明天之后,不管结果如何,有些事情都会改变。
但他没有告诉任何人——他已经提前把父亲的笔记本和关键数据备份到了三个不同的加密云存储,其中一份的密码只有张远航知道。如果明天出了任何意外,那些东西不会消失。
这是他的最后一道防线。他相信周扬是真心悔过,名单核对了三遍,每一个细节都严密无误。但他也在心里留了一个小小的、不言说的角落:万一这一切都是假的,万一那张名单本身就是陷阱的一部分,至少他藏起来的东西不会被一并带走。
他合上眼睛。窗外,雪还在下。
明天,就是收网的日子。
第十七章 归乡即战场
十二月十八日清晨,陈默独自登上了南下的高铁。
站台上风很大,把他羽绒服的帽子吹得紧贴在头顶。他没有回头,只是刷卡过了闸机,沿着月台往前走。行李箱的轮子在水泥地面上发出规律的滚动声,混在早班列车的汽笛和广播声中,像是这段旅程的节拍。
车厢里暖气很足,甫一进入,眼镜片上就蒙了薄薄一层雾。他摘下来擦了擦,找了个靠窗的位置坐下。高铁很快启动,窗外的北京在加速后退——那些灰白色的楼宇、覆盖着积雪的屋顶、光秃秃的梧桐枝丫,像一幅被快速翻过的画卷,一页页消失在后方。
他膝上放着一个黑色背包。里面装着那台司徒玄给的电脑、林远山的部分手稿复印件,以及那个报废的U盘外壳。
手机震动。林雨晴的消息:"已到。张远航在实验室留守,王奕的人盯着零点在北京的活动。米沙那边的'演出'很顺利。"
陈默回复:"好。保持联系。"
"你一个人行吗?"
陈默看着窗外飞驰而过的华北平原,打了一行字:"这是我该做的。帮我照顾好我妈。"
六个小时后,火车进站。
南方冬天特有的潮润冷空气涌进车厢。陈默走下火车,站在站台上,看着远处那棵老樟树依然枝繁叶茂。七年前,他就是从这个站台出发去省城的。那时候他瘦小沉默,书包里塞着母亲煮的鸡蛋和一本从旧书店淘来的算法书。
此刻他站在同样的位置,手里多了一个背包,肩上多了七年的重量。
他没有去酒店。他回了家。
用钥匙打开防盗门时,一股久无人居的灰尘气息扑面而来。客厅的沙发套着防尘布,茶几上还放着一本翻到一半的杂志。陈默放下背包,走到阳台,推开窗。南方的冬风涌入,带着远处田野和河流的气息。楼下传来人家做饭的声响,一切都那么平常。
但陈默知道,这种平常是假的。
他掏出手机,打开加密通讯软件。屏幕上显示着六个红点——那是昨晚王奕的人连夜部署的加密信标,现在全部正常运转。它们分布在县城周边六个关键位置:火车站、高速公路入口、城南老街区、县中学附近、河岸泵站、以及他家楼下。
这是他离开北京前做的最后一件安排。王奕的人用了一整夜,把这六个加密信标布进了县城的基础设施里。只要零点的人在县城范围内移动,信标就能捕捉到他们携带的电子设备的信号特征,实时回传位置。
名单上周扬提供的十二个位置坐标,已经被他全部输入了系统。如果那些人是真的,信标会捕捉到他们的活动轨迹,与名单吻合;如果那些人不存在,信标只会捕捉到空白。
他打开背包,取出那个U盘外壳,放在茶几正中央——正对着窗户。金属表面在暮色中反射着微弱的光。
鱼饵已经放好。
等鱼上钩。
第二天清晨,陈默去了城南的老街。
青石板路在冬晨的薄雾中泛着湿润的光。他沿着巷子往里走,经过几家刚开门的小店,在一扇褪了色的木门前停下——"知远书店"。
推开门,风铃叮咚作响。柜台后面,一个老人抬起头来。七年过去,他更老了,头发全白,脸上的皱纹像干涸河床的裂纹,但那双眼睛依然清亮。
"小伙子,"他说,声音沙哑但温和,"好久不见。"
陈默走到柜台前。"您早就知道我会回来。"
老人放下手里的线装书,笑了笑。"我知道你会回来,但不知道是今天。"他从柜台下拿出一个紫砂壶,倒了两杯茶。茶香氤氲,在昏暗的光线中升腾。
"那个U盘,不是随便捡到的。"陈默说。
"当然不是。那是我替你保管了二十年的东西。"
"二十年?"
"你还没出生的时候,我就认识你父亲了。"老人的目光变得幽远,"你父亲——陈远山,是林远山的弟弟。黎明计划的核心成员之一。"
陈默愣住了。
"你父亲是黎明计划的软件工程师,"老人继续说,"当年量子代码失控后,他带着一部分数据离开了。他把数据封存在一个特制U盘里,交给了最信任的人。"
"您。"
老人点头。"他告诉我说,将来有一天,会有一个和他很像的年轻人来取这个东西。"
陈默的喉头发紧。"他……是怎么死的?"
"爆炸后受了辐射伤。坚持了三年,还是走了。"老人放下茶杯,"你母亲不知道这些。你父亲不让她知道。他希望你能过普通人的生活。"
"但您还是把U盘给了我。"
"因为你看得见代码背后的世界。"老人指了指自己的眼睛,"和你父亲一样。"
陈默低下头,看着杯中澄澈的茶汤。他一直以为自己是个从零开始的孤狼,没想到在起点之前,已经有人为他铺过路。
"周正雄知道这些吗?"
"知道一部分。"老人的声音变低了,"他知道U盘和林远山有关,知道你父亲是知情人。但他不知道U盘里封存的不只是量子代码——还有黎明计划的完整记录,包括那次事故的真相。"
老人从抽屉里取出一本老旧的笔记本,暗红色封面,边角磨得发白。翻开第一页,上面是手写的标题——《黎明计划·实验日志·1997-1998》,署名:陈远山。
"拿回去看。"老人把笔记本推过来,"你父亲留给你的,比U盘里的东西更重要。"
陈默接过笔记本,手指触到封面的瞬间,有种奇异的感觉——像是隔着一层薄薄的时光,握住了另一个人的手。
"谢谢您。"
他走出书店时,天空飘起了细雨。南方的冬雨细密绵长,像无数银丝从灰白的天幕垂落。他把笔记本护在怀里,沿着青石板路往外走。
他没有回家。他去了县中学后面那排废弃的车棚。
坐在水泥台阶上,他翻开了父亲的笔记。
"1997年3月12日。量子代码第一次表现出自主演化特征。林远山说,它像在'学习'……"
"1997年6月7日。代码开始'思考'……感觉像是被什么东西从内部注视。"
"1997年9月20日。实验事故。爆炸造成三人受伤,林远山重伤住院。我保存了核心数据的备份,放在U盘里……"
"1998年1月5日。林远山从医院回来了。他说,量子代码不是工具,是生命。它需要有人类作为宿主才能存活。"
"1998年3月。周正雄离开了团队。他不同意把代码封存。他说,那等于把原子弹藏起来假装它不存在……"
笔记本到这里中断了。最后一页的末尾,用很轻的铅笔字写着:
"小默,如果你读到这些,说明你已经走得很远了。爸爸为你骄傲。记住,那个U盘里的代码不是武器,是种子。种下去,它会长成森林。"
陈默合上笔记本,仰起头。车棚铁皮缝隙中,细雨还在飘落。他坐了很久,感受着那些三十年前的文字穿透时间,落在二十一岁的心上。
他一直以为自己是在独自战斗。但现在他知道了——他的父亲、林雨晴的爷爷、司徒玄,他们一直在为他铺路。
手机震动。加密通讯软件弹出一条警告:六个加密信标中,有三个捕捉到了新的信号源——位置分别在城南老街出口、县中学北门、以及河岸泵站方向。这些信号的特征与名单中前三个人的电子设备指纹完全吻合。
他们已经到了。而且正在沿着名单上的位置移动。
陈默把笔记本收好,回复了张远航的消息:"确认。名单属实。按原计划。"
他收起手机,站起身。雨还在下,但天色正在转暗。他沿着小路往北走,穿过县中学的操场,走向那片废弃的旧厂房——按计划,那里是引蛇出洞的位置。
手机又响了。
来电显示是一个陌生号码,归属地北京。他接起。
"陈默,别来无恙。"一个低沉的声音,带着某种自矜的从容。
"周正雄。"
"你母亲身体还好吗?听说转院了。"周正雄的语气像在聊家常,"不过有些药,换了医院也未必能完全杜绝——老毛病嘛,总是会跟着病人走的。"
陈默的手指收紧了。"你动了我母亲。"
"我只是确保她得到最好的'照顾'。"周正雄轻笑一声,"你父亲当年也是这么照顾我的——把最重要的数据藏起来,让我像个傻子一样找了二十年。你说,这笔账该怎么算?"
"我父亲已经去世了。"
"但他把账本留给了你。"周正雄的声音变冷了,"那本笔记本,你应该已经看过了吧。旧书店的老头儿跟你说了什么?"
陈默没有回答。窗外,雨下得更密了。
"我有个提议,"周正雄继续说,恢复了那种从容的腔调,"你把U盘里的数据完整交给我,我保证你母亲得到全国最好的医疗资源。你的实验室,你的研究,我也可以资助。"
"然后呢?"
"然后你继续做你的学问,我继续做我的生意。互不打扰。"
陈默沉默了几秒。"周正雄,你以为我要的是钱,是资源,是保护?"
"那你要什么?"
"我要你停下来。"
电话那头沉默了。然后传来一阵低沉的笑。"你比你父亲还天真。"
电话挂断了。
陈默握着手机站在雨中。雨滴顺着他的发梢往下淌,他没有擦。他继续往北走,脚步没有加快也没有放慢。但走出三步之后,手机又响了。
这次是一个本地号码。
"陈默?"声音带着沙哑和急促。是周扬。
"别挂,"周扬的声音很急,像是一边跑一边说话,"我爸派人去你老家了。名单上的人,今天下午已经过去了。你能听到我吗?"
"听到了。"
"我现在在国贸地下停车场,开了一辆黑色特斯拉出来。"电话里传来车门关上的闷响,然后是引擎启动的声音,"我知道我欠你的——很多。但这个,算我还你的第一步。你那边情况怎么样?他们到了吗?"
"到了。和你名单上一致。"
周扬那边安静了一秒。然后他的声音变得更低了:"那就好。你听我说——我刚才在监控室里看到了一样东西。我爸对他们说,收网之后,'火种'要重新点燃。他说的火种……是量子代码,但他要用它做的第一件事,是重建黎明计划的实验平台。你父亲的笔记里写了那次爆炸的真相,对吧?"
陈默没有回答。
"他根本没打算封存任何东西,"周扬的声音在发抖,"他要重启那个实验。不管代价是什么。"
风声。电话那头只有风声和引擎的低鸣。
"我今晚想办法出来,"周扬说,声音压得更低了,"你那边如果人手不够,我到了可以——"
"不用。"陈默说,声音平稳,"你顾好自己。"
"好。"周扬的声音忽然变得很轻,"对了,你论文里那句话——'人类思维的无限延展'——我爷爷的遗物里有一模一样的。写在最后一盒粉笔的盒盖上。他自己写的。"
电话挂断了。
陈默放下手机,站在雨里。雨越下越大了,打在脸上生疼。他低头看了一眼屏幕——加密软件上,那三个信标正在移动,轨迹与名单上标注的活动区域完全吻合。
他站在原地等了三十秒。然后他做了一个没有告诉任何人的事。
他打开那个只有他自己知道的三级加密备份,把父亲笔记本的全部内容压缩加密,上传到了第三个云存储位置——那个密码只有张远航知道的备份。上传进度条走到100%时,他关掉了手机。
然后他继续往北走。
晚上七点,雨停了。
陈默已经走到了县城北边的旧工业区。这里曾经有一家纺织厂,九十年代倒闭后就一直荒废着。厂区大门锈迹斑斑,围墙上爬满了枯藤,院子里的水泥地面裂开了巨大的缝隙,野草从缝隙中长出来,在冬天里变成了枯黄色。
他推开半掩的铁门,走了进去。
厂区深处有一排废弃的厂房,屋顶的铁皮已经塌陷了大半,露出锈蚀的钢架。他选了中间那间,走了进去。地面是水泥的,积了一层厚厚的灰,墙角堆着一些早已朽烂的麻袋。
他在墙角蹲下,把背包放在脚边。这个位置可以看到大门和侧面两个入口,视野开阔,但背靠墙体,不会被从背后偷袭。
雨后的夜很安静。远处县城传来零星的车辆声响,近处只有水滴从铁皮边缘滴落的节奏,像某种缓慢的计时器。
他等了三十分钟。
口袋里的手机震动了一下。张远航的消息:"零点的人动了。三个信号源正在向县城中心移动。还有一个从北边过来了。"
陈默回复:"知道了。按计划。"
他刚把手机收进口袋,就听见了声音。
不是脚步。是某种更轻的、被刻意压制的声音——衣料摩擦的窸窣,鞋子踩在碎砖上几乎不可察觉的响动。从厂房西侧那扇破窗的方向传来。
陈默没有动。
然后是从大门方向。然后是东侧。
三个方向。
他在瞬间做出了判断,猛地侧身滚向旁边的麻袋堆。几乎同时,他刚才蹲着的位置传来一声闷响——某种重物砸在水泥地上的声音,碎片迸溅。
陈默没有回头去看,直接站起来冲向厂房后墙。那里有一扇半塌的小门,铁皮门板歪斜着挂在铰链上,只要侧身就能挤过去。
他挤出门的瞬间,一只手抓住了他背包的肩带。
陈默用力向前一挣——背包的肩带被撕开了一道口子,但整个背包被拽了回去。他听到身后传来拉链被拉开的声音,然后是周扬的声音从远处传来:"别追了,东西拿到了!"
陈默回头。
厂房后面是一条小巷,巷口站着一个穿深灰色风衣的身影。是周扬。他手里拿着陈默的背包,正在快速拉开拉链。在他身后,巷子两侧涌出更多的黑影——至少五个人,正在向陈默合拢。
"你看,"周扬从背包里抽出那本暗红色的笔记本,举起来晃了晃。他的声音没有了电话里的沙哑和急促,恢复了那种熟悉的、带着讥讽的腔调,"你真的以为我会帮你?"
陈默站在巷子另一端。雨水从屋檐滴落,在他和周扬之间形成一道半透明的水幕。隔着那层水幕,他看见了周扬的眼睛——那里面没有恐惧,没有悔意,只有一种冰冷的、完成任务的平静。
"名单是真的。"陈默说。他的声音很平稳,连自己都觉得意外。
"当然是真的。"周扬把笔记本放进自己外套内袋,"我爸要是连这点成本都不肯出,怎么让你相信我?十二个人,六个位置,全部是真的。驻扎、活动、交接——每一个细节都经得起查。你核对过的,对吧?"
陈默没有说话。
"你不信我,"周扬笑了一下,那笑容在昏暗的光线里显得扭曲,"但你相信数据。那张名单上的每一个坐标都和你监测到的信号吻合,所以你相信了。我爸说,你最大的弱点就是——你相信证据。"
巷子两侧的黑影正在合拢。陈默退了两步,背靠住了冰冷的砖墙。
"那通电话,"他说,"你提到你爷爷的粉笔盒。"
周扬的笑容淡了一瞬。然后他歪了歪头,露出那种陈默再熟悉不过的表情——高中时,每次他用言语羞辱完别人,脸上就是这种表情。"是真的。我确实翻到了那盒粉笔,我爷爷确实在盒盖上写了那句话。"他顿了顿,"但那和我有什么关系?"
他往前走了一步,从内袋抽出那本笔记本,在手里掂了掂。"你以为我演得多辛苦?那些话——'没握过粉笔','梦见那根粉笔'——全是真的。我知道怎么用真东西骗你。因为你相信别人会悔改。"
"你妈呢?"
周扬的表情变了一下——极细微的、几乎不可察觉的颤动。然后他恢复了那种平静。"我爸说了,只要这件事办完,我妈那边的治疗会继续。你妈那边也一样——只要你老老实实把U盘交出来,大家都好过。"
陈默看着他的眼睛。那双眼睛里没有光,只有一种空洞的、被反复使用后的疲惫。那些在咖啡店里流露过的所有情绪——恐惧、挣扎、犹豫——此刻回想起来,每一个细节都精确得像排练过的台词。
"你母亲知道吗?"陈默问。
周扬的嘴唇抿紧了。这是第一次,他脸上那种从容的假面出现了裂痕——很浅的一条,但真实。"别扯我妈。"
"她在医院里等着你回去。"陈默的声音很轻,"你告诉她你在做什么吗?"
"闭嘴。"周扬的声音冷了,"你什么都不懂。"
他身后的人影已经合围到了十步之内。陈默能看见他们的轮廓——黑色外套,身形精干,动作训练有素。其中一个站在周扬身后半步的位置,瘦长的脸,眼睛像两把合拢的刀。
蛇头。
"把U盘交出来,"蛇头开口了,声音平淡得不像是在围猎,"还有那台电脑里的备份。你爸的笔记我拿到了,剩下的东西对你来说没用了。"
陈默没有动。他的右手插在口袋里,指尖碰到了那枚U盘外壳的金属边缘——凉的,裂痕分明。他的左手垂在身侧,掌心是空的。
"你的后手呢?"周扬突然说,"你肯定留了后手。告诉我,在哪儿?"
陈默看着周扬,忽然笑了。很轻的、几乎听不见的笑声从喉咙里溢出来。
"我不告诉你。"
蛇头皱了下眉,似乎准备挥手示意动手。就在这时——
巷子另一端传来一声闷响。不是枪声,是某种重物被撞击的声音。紧接着是急促的脚步声,从巷口快速接近。
一个身影从侧面的矮墙翻了过来,动作快得像猎豹。张远航的左臂袖子被划开了一道口子,渗着血,但他落地的瞬间就站稳了,手里拎着一根从什么地方拆下来的铁管。
他冲到最近的黑影面前,铁管横扫过去,那人应声倒下。
与此同时,巷子另一侧传来弹珠打在金属上的清脆声响。林雨晴的身影出现在二楼阳台,手里的发射器还在冒烟。她身边站着两个陈默不认识的人,但动作配合默契得惊人。
"走!"张远航朝陈默喊了一声,同时把背包甩了过来——不是陈默原来的那个,是一个新的,深灰色的,拉链拉得严严实实。
陈默单手接住,转身就跑。
身后传来混乱的追逐声。有急促的喘息和咒骂,有弹珠连续发射的噗噗声。陈默穿过院子,跳过一堆废弃的砖块,从两栋楼之间狭窄的缝隙挤过去,冲到了另一条街上。
他停下脚步,弯腰扶着膝盖喘气。心跳声在耳朵里擂鼓一样响。他回头看了一眼——巷子那边的动静正在减弱,显然张远航和林雨晴正在帮他拖住追兵。
手机震动。张远航的语音消息,只有五秒:"往南跑。河边有个废弃的泵站,那地方信号屏蔽。快。"
陈默直起身,看了一眼南边的方向。夜色中隐约能看见河流的反光,像一条暗色的绸带横亘在城市边缘。
他开始跑。
夜风呼啸着掠过耳畔。他把所有能调动的力气都灌进了双腿。身后,县城沉睡的灯火被迅速甩远,前方是更深的黑暗和那条河。
四十分钟后,陈默站在河边的废弃泵站里。
铁门被他从里面别上了一根锈蚀的钢筋。泵站内部漆黑一片,只有高处破损的窗户透进来一线月光,照亮了水泥地面上厚厚的灰尘和墙角生长的青苔。
他靠着冰冷的墙壁滑坐下来。从张远航扔给他的新背包里摸出手机——屏幕上有两条消息。
张远航:"安全。周扬跑了,笔记本被蛇头带走。但U盘外壳和父亲笔记的加密备份都还在我们手里。"
林雨晴:"你没事吧?报个平安。"
陈默打字:"平安。"
然后他放下手机,靠回墙壁。窗外,河水在夜色中静静地流着。远处县城的灯火连成一片模糊的光晕。
他闭上眼睛,回想这整个陷阱是如何被编织的。
名单是真的。每一个坐标都经得起验证。周扬用了真东西——真情报、真数据、甚至他爷爷的真实遗物——来编织一个假的"背叛"。他算准了陈默会被"真相"说服,算准了陈默在看到数据吻合后会放下最后一丝戒备。
但周扬漏掉了一件事。
陈默确实相信了那张名单,确实相信了他那一刻的"悔改"。但他还是留了后手。那通电话里,周扬说得越多,细节越丰富,陈默心里那个不起眼的角落就越亮——像一盏在暴风雨中始终不肯熄灭的灯。
他不相信周扬的每一句话。但他选择让周扬以为自己相信了。
泵站里很冷。陈默从口袋里掏出那枚U盘外壳,在月光下翻看。裂痕还是那些裂痕,金属表面还是那些斑驳的刻印。但至少,最核心的东西还在。
他从新背包的夹层里抽出一个防水袋,里面是父亲的笔记本——原件。不是周扬拿走的那个。
那本"暗红色笔记本"是复制的。真正的原件,在陈默离开北京前就做好了伪装——他把笔记本的封面换成了一个旧教材的封皮,塞在行李箱最底层。而摆在茶几上的那本,是林雨晴连夜用扫描打印和旧书皮仿制的。
周扬拿走的,是假的。
陈默把真正的笔记本放回防水袋,塞进背包最深处。然后他靠着墙壁,听着河水流淌的声音,等待着天亮。
远处,县城的第一声鸡鸣已经响了。
天快亮了。
第十八章 暗河
泵站里弥漫着河水与铁锈的气息。
陈默靠着墙壁坐了一夜,没有合眼。月光从高处破损的窗户渗入,在地面上投下倾斜的银白色光带,照着水泥地面上的裂纹和墙角暗绿色的青苔。河水在泵站外流淌,持续不断的水声像某种低沉的呼吸,填补了夜晚所有的空隙。
他在天亮前的两个小时里,把过去四十八小时发生的事情从头到尾梳理了一遍。
周扬的背叛是周正雄设计的一枚精密齿轮。那张名单是真的,十二个位置坐标全部吻合,每一个信号源都真实存在。周扬用真数据做饵,用他爷爷的真实遗物做引,用那种精确到毫米的"悔恨"表演当钩子——每一个细节都经得起推敲,因为每一个细节都是真的。他唯一说谎的地方,是那句"不用管我"背后的动机。
陈默低头看了一眼手机。凌晨四点多,加密通讯软件上有一条来自张远航的加密消息,发送时间是一小时前。
"已确认安全撤离。林雨晴回酒店。新背包里有备用通讯设备和一套加密信标,拆开看说明书。父亲笔记本在防水袋里,原件。另外,你给我的那个三级备份密码我用过了,数据完整性确认。"
陈默从新背包里翻出那个通讯设备,一块巴掌大的黑色方块,侧面有一个USB接口和一个极小的指示灯。旁边压着一张折好的说明书,张远航的笔迹写在上面的空白处:"频率跳频,每隔三十秒换一次信道。六公里内有效。"
他拔掉旧手机上的SIM卡,剪断,然后把备用设备接到充电宝上。指示灯亮起来,蓝绿色的光在黑暗中像一只安静的眼睛。
窗外的夜色正在变淡。东方的天际从墨色转为深蓝,再转为一种潮湿的灰白。河面上浮起薄雾,像一层半透明的纱,把对岸的田野和树影都吞没了。
陈默站起来,关节发出细碎的响声。他走到那扇破损的窗户前,看向外面。
河岸的芦苇在晨风中轻轻摇晃。更远处,县城的轮廓正在从雾中浮现——低矮的楼房、烟囱、高压电线塔,在灰白的天光里像一幅褪色的水墨画。一切都那么安静,那么平常。但陈默知道,那十二个人还在县城里,蛇头还带着那本假笔记本,周正雄还在北京的指挥中心等着消息。
他没有多少时间。
上午九点,陈默出现在县城南边的菜市场。
这是他计划中的第一步。菜市场人多、嘈杂、到处是监控盲区,是最好的"消失在人群里"的地点。他换了一件从泵站附近农家晾衣绳上"借"来的旧外套——灰色,洗得发白,袖口磨出了毛边——混在早市买菜的人群中,像一个普通的返乡年轻人。
他在一个卖豆腐的摊位前停下,买了三块水豆腐,用塑料袋拎着。付钱时他的目光扫过周围——卖菜的大妈、推着自行车的男人、蹲在路边挑葱的老太太。没有异常的面孔,没有那种过度专注的、不属于菜市场的视线。
他继续往里走,在卖鱼的水箱前停下,假装看那些在水里游动的草鱼。同时他借着蹲下的动作,把一枚硬币大小的黑色信标贴在了水箱底部的金属支架上。信标的背面有强力磁铁,吸附得很稳,不仔细看只会以为是哪个部件上的垫片。
这是王奕团队连夜赶制的小东西。每一个信标都能捕捉方圆五十米内的电子设备信号,通过频率跳频网络回传到陈默手里的接收器上。他今天要在县城里布下八个这样的点,覆盖零点人员最可能活动的区域。
第三个信标贴在老电影院门口的消防栓背面。第四个粘在县医院急诊楼外侧的空调外机底部。第五个放在汽车站候车厅的座椅下面。每布一个,他都会在手机地图上标注位置,然后快速离开。
他忙到中午,在路边一家面馆吃了碗热汤面。面馆的老板娘和别的顾客闲聊,说昨晚城北那片旧厂房好像有人打架,警察都来了。陈默把面汤喝完,没接话,放下钱就走了。
下午一点,他回到泵站。把八个信标的信号接入接收器,屏幕上跳出一张由微弱信号构成的热力图。几个绿点正在地图上缓慢移动——其中两个的位置,与周扬名单上的前两个坐标完全一致。
他们还在。还在按原方案活动。周正雄还不知道笔记本是假的。
陈默盯着那两个绿点看了很久。然后他发了一条消息给林雨晴:"我需要一份零点的内部通讯协议样本。哪怕是一段对话记录也行。"
林雨晴的回复很快:"我从北京出发前托人搞到过一段,是去年从零点泄露出来的。但不确定是不是最新的版本。"
"发给我。"
收到那段通讯协议后,陈默在泵站的地上铺开电脑,开始分析。零点的通讯加密不算特别复杂——一套基于椭圆曲线密码的变体协议,做了几次自定义修改。他花了一个小时还原了其中的关键密钥派生逻辑,然后发现一个有意思的细节。
这套协议里埋着一个"后门":某段特定的数据包前缀,可以触发接收端进入一种"诊断模式",以明文回传当前设备的位置和状态信息。这个后门是协议设计者自己留下的——要么是为了方便自己人调试,要么是周正雄本人当年在搭建系统时就给自己留的退路。
陈默把这个发现发给张远航。
张远航回了一个表情符号——点赞。然后跟了一条文字:"你打算用这个?"
"对。但需要你先在实验室模拟一下触发条件。我不能直接发探测包,会把我们的位置暴露。"
"给我四小时。"
陈默收起电脑,靠在墙上。泵站外的河面上,雾气正在散去,阳光透过云层洒下来,在水面上镀了一层碎金。他看着那片光,忽然想起很多年前,在实验中学的机房,他也是这样熬了一整夜,等待一个可以突破的窗口。
只是那时候他等的是一个算法的优化思路。现在他等的,是足够把对手整个系统撕开的裂缝。
下午四点,张远航的消息来了。
"模拟成功。触发数据包结构如下,你复制粘贴就能用,但需要注意——接收端收到后会在三秒内回传位置信息,同时向主服务器发送一条日志记录。如果你的设备被监听,他们会立刻定位到你。"
陈默把那串十六进制数据输入接收器。他的手指在发送键上停了五秒。
然后按了下去。
接收器的屏幕上,几个原本模糊的绿点瞬间变得清晰——坐标精度从几百米缩小到了几米。更关键的是,屏幕上弹出了三行附加信息,是设备回传的诊断记录:
"设备编号:ZY-07" "最后操作时间:2024-12-19 23:47:12" "上级节点:BJ-GM-21"
ZY-07。这是零点在县城的第七号设备。操作时间是一天前——蛇头拿到假笔记本之后的那段时间。而BJ-GM-21,这个上级节点编号对应的是北京国贸的服务器。
假笔记本的数据,已经被同步到了周正雄的总服务器上。
陈默立刻把这三行信息和完整的数据包结构发给了林雨晴,附了一句话:"用这个去查周扬名单之外的人。零点内部通讯系统有后门。如果能截获他们之间的通讯记录,我们就有铁证。"
林雨晴回复了一个字:"好。"然后是第二句:"小心。周扬在找你。他以为笔记本是原件,但他开始怀疑了。"
陈默看着那条消息,手指在屏幕上方停了很久。周扬开始怀疑了。这意味着留给他的时间正在缩短。
他必须在周扬确认笔记本是假的之前,拿到足够的证据,然后把整个事情推到必须公开的那个临界点。
傍晚,陈默换了一条路线回泵站。
他绕了远路,穿过县城东边的农田,沿着田埂走。冬天的田野很安静,稻茬在暮色中泛着干枯的金黄色。几棵柿子树站在田边,叶子落光了,只剩枝头挂着几颗干瘪的果实,在风中轻轻摇晃。
走到半路,他的接收器震动了一下。屏幕上弹出一条新的信号捕捉——来自县中学方向,信号强度中等,设备编号没有出现在周扬的名单里。
新的人。
陈默蹲在田埂上,把接收器调到最大灵敏度。那个信号源正在缓慢移动,方向是从县中学向南,速度接近步行。他调出地图,沿着信号移动的方向画了一条延长线——终点可能是城南老街,也可能是河岸。
可能是蛇头正在亲自确认什么。
陈默收起接收器,沿着田埂继续走。他没有加快脚步,保持着一个普通人黄昏散步的速度。但他的眼睛开始关注每一个可能的方向——右前方那片杨树林,左侧那座废弃的水塔,身后五百米处正在亮起灯光的村庄。
天黑了。
他回到泵站时,发现铁门上别着的那根钢筋被人动过——倾斜的角度和早上不一样。他没有推门,而是绕到泵站侧面,从一扇半塌的通风窗翻了进去。
黑暗的泵站内部寂静如常。但他闻到了一丝极淡的烟味——不是他留下的。有人在过去几个小时内来过这里。
陈默贴着墙壁移动到最里面的角落,把背包放在脚下,然后蹲下来等着。接收器上没有新的信号源出现在泵站附近。来的人已经走了,而且走得很干净。
他打开手电筒,检查了泵站内部——地面上的灰尘有一些新的痕迹,但不像是刻意搜索留下的。更像是某个人进来站了一会儿,看了看,然后离开。
走的人在找什么。还没找到。
陈默在黑暗中坐了很久,听着泵站外持续的水声。然后他打开电脑,把今天采集到的所有数据——八个信标的信号轨迹、那段通讯协议的后门分析、以及下午截获的诊断记录——全部压缩加密,上传到了那个只有张远航知道密码的备份。
上传完成后,他合上电脑,躺了下来。泵站的水泥地面又冷又硬,但至少是干燥的。
他闭上眼睛。
凌晨两点,接收器突然震动。
陈默几乎是瞬间清醒过来。屏幕上有三条连续的消息——全部来自林雨晴的加密频道。他快速点开:
第一条:"截获到零点内部通讯。蛇头给周正雄的汇报。时间是今晚二十一点。"
第二条:"他说拿到笔记本了。内容是真实的,包含父亲的笔记。周正雄相信了,回复说'可以进入下一阶段'。"
第三条:"但蛇头最后补了一句话——'目标可能留了备份,建议加派人手确认'。"
陈默盯着屏幕。蛇头汇报了假笔记的内容是真实的——这意味着那本复制的笔记本精准还原了父亲前几页的文字,蛇头根本没有看到后面的内容。周正雄相信了。
但蛇头在怀疑。他怀疑陈默留了备份。这意味着他会加派人手来找那个"备份"——也就是陈默手里这本真正的笔记本。
陈默把这三条消息转发给张远航和王奕。
张远航的回复几乎是秒回:"我这边也截到一段。零点北京总部的服务器今晚有一次大量数据读出,可能是蛇头在把假笔记的内容和某个数据库做交叉比对。"
王奕的消息紧随其后:"国贸那边的监控显示,今晚十一点半有两辆车从地下车库离开,向南方行驶。车型和零点常用的车队吻合。"
两辆车。向南行驶。方向是这里。
陈默从地上站起来。他看了一眼窗外——夜色正深,河面上没有月光,只有远处县城的灯火在水面上投下微弱而破碎的倒影。
他需要换地方了。泵站已经暴露。
但他还需要做一件事。
他把接收器调回通讯模式,用那段后门协议构造了一条新的探测包。这一次,他不是去找设备的位置——他去嗅探那两辆正在南下的车的通讯频道。如果它们正在途中,车上的人大概率会通过内部系统沟通。
探测包发送出去。三秒后,接收器弹回了三条信息。
其中一条引起了他的注意——一小段加密的文本,但后门协议让它在诊断模式下呈现为未加密的明文字节。张远航远程协助他解开了那串字节的编码。展开后是一段模糊的文字:
"……正在路上,预计明早六点到达。目标可能在河岸附近,重点搜索泵站和废弃建筑。如果找到备份,直接销毁。笔记本已确认内容真实,主人很满意。今晚加派人手,确保明天收网前没有漏网之鱼。"
陈默反复读了三遍。
主人很满意。笔记本内容真实。
周正雄还没有发现那是假的。假笔记的前面几页确实和原件一模一样——但后面的关键内容,包括关于"爆炸真相"和"量子代码是生命"的那些段落,陈默在复印时做了技术性删改。他把父亲原话里的核心事实换成了泛泛的描述,把"量子代码需要宿主"改成了"量子代码稳定性依赖特定环境条件"。所有看起来足够"真实"但不指向核心秘密的信息都被保留了,而那些能真正证明周正雄当年参与了什么、黎明计划的真实性质、以及量子代码真正威胁的内容,全部被替换成了无害的学术语言。
蛇头带走的是一份看起来很像但其实没有任何证据价值的副本。
而真的笔记,此刻正躺在陈默背包的防水袋里。
他把那段文字截图保存,然后关掉接收器。在泵站里最后一次检查了所有物品——电脑、通讯设备、充电宝、防水袋里的笔记本、U盘外壳、以及那块鹅卵石。全部装进背包。
他推开通风窗,翻了出去。
夜色中,县城南边的河岸线在黑暗中蜿蜒。陈默沿着河往下游走,脚步声被水声掩盖。他要去下一个点——县城西边一个废弃的采石场,张远航发来的备用撤离点。那里更远、更偏僻、更难被搜索。
但他没有立刻去。他中途绕了一下路。
经过县医院时,他从侧门进去,在急诊楼外侧某个不起眼的角落停了一下。那个空调外机背面,他早上贴的信标还在。他取下来,换成了一个更小的、纯被动式的东西——一个微型录音装置。没有信号发射,不会主动探测任何东西,但它能捕捉十米半径内的声音,并存储在内部存储器里。
蛇头如果真的派人来县城医院"确认"什么,也许会留下声音。
做完这些,陈默继续向南走。采石场在县城西郊的山脚下,要走将近两个小时。夜色很深,四周只有虫鸣和远处偶尔的犬吠。他走在田埂上,头顶是一弯细窄的新月,像一枚银色的缺口。
走了约四十分钟,他停下休息,靠在路边一棵老槐树下喝了一口水。手机在背包里无声震动。他掏出来,看到林雨晴又发来两条新消息。
第一条是一段音频文件,长度约六分钟,附文字:"医院急诊楼外,你装的录音设备捕捉到了。我远程提取了一部分。注意音量。"
第二条是文字:"那个人在你贴信标的位置停了三分钟,打了一通电话。声音我不确定是谁,但提到了一个词——'火种'。还有一句原话:'那本笔记只是引子。他要的是人,不是纸。'"
陈默把音频文件下载到本地,但没有立刻打开。他靠在树干上,听着田野里冬虫的低鸣,想着那句"他要的是人,不是纸"。
周正雄要的从来就不是那本笔记本。笔记本只是确认陈默父亲到底留下了什么线索。他要的是陈默本人——或者说,陈默脑子里那个U盘灌输的知识残留。假笔记暂时骗过了他,但如果蛇头继续追查,一旦发现那本是复制品,周正雄就会知道陈默手里还有原件。
到那时候,他不会再有任何顾忌。他会直接派人来抓人,不管用什么手段。
陈默起身,继续走。
凌晨四点半,他到了采石场。
这是一处已经完全废弃的石料加工地。破碎机锈蚀得只剩骨架,传送带断裂成几截散落在碎石堆里。边上有几间工棚,铁皮屋顶大部分还在,但门板已经不知去向。陈默选了最靠里面那间,在角落的干草堆上坐下来。
他掏出那块鹅卵石,放在旁边的木箱上。青灰色的石面在黑暗中几乎看不见,只有靠近了才能摸到那蜿蜒的白色纹路。
然后他打开接收器,把今天截获的所有通讯记录整理归档——十二个信号源的移动轨迹、蛇头的汇报、那两辆南下的车的内容、音频片段、通讯协议后门的完整技术文档。每一条都标注时间、来源、可信度评估。
等这些都结束了,这些数据就是铁证。足以让一个组织被连根拔起的铁证。
天边开始泛白。采石场东面的山脊线上,一层浅淡的橙色正在渗透深蓝色的夜空。几只鸟从山谷里飞起,发出短促的鸣叫,在寂静中格外清晰。
陈默靠回墙壁,闭上眼睛。今天会是漫长的一天。
他需要在天亮之前想清楚一件事——周正雄真正想要的东西,到底在陈默自己身上,还是在U盘里?那枚裂开的金属外壳里,到底还残存着多少可以被"读取"的量子痕迹?以及——如果他真的被逼到墙角,他有没有足够的筹码,让周正雄不得不坐下来谈?
他的手指触到外套口袋里那枚U盘外壳的边缘。裂痕冰凉,棱角分明。
天亮了。
第十九章 断层线
采石场的第一缕阳光从东面的山脊线射入,照亮了工棚内漂浮的灰尘。
陈默在干草堆上坐了一整夜,没有合眼。手机屏幕上显示着林雨晴和张远航在过去六小时里发来的十七条消息,他逐一读完,在脑子里拼出了一幅更完整的地图。
蛇头加派的人手已经到了。昨晚从北京南下的两辆车,今早六点准时进入县城范围。零点人员在县城的数量从十二人增加到二十人,分布范围从六个固定点扩展到了包括河岸、医院、车站和城南老街在内的九处。他们已经开始大规模搜索,重点区域正是陈默昨天待过的泵站和周边。
但周正雄依然没有命令他们直接抓人。蛇头的汇报里明确写着:"暂不惊动目标。以确认备份位置为主。"
这说明周正雄还在等。他在等蛇头确认陈默手里是否还有原件,在确认之前,他不会打草惊蛇。因为如果他直接抓人,陈默有可能在被抓到之前销毁或转移数据。周正雄不敢赌。
"你在中间这条缝里。"陈默对着一片空白的地面说。声音很轻,在空旷的工棚里几乎听不见。他把这句话在脑子里又过了一遍——周正雄不敢直接动手,他派了更多的人来盯着,但他还在等那个"确认"。这段等待的时间,就是陈默可以活动的缝隙。
上午七点,陈默离开了采石场。他沿着山脚的小路绕到了县城东侧,在路边一个公共电话亭前停下——这种老式电话亭县城里还剩几个,大部分都废弃了,但他知道城南菜市场门口那个还能用。
他用投币电话拨了一个号码。响了四声,那边接了起来。
"王奕。"
"是我。"王奕的声音压得很低,背景里有城市的背景噪音,"你那边情况怎么样?"
"不太好,但还没到最坏。"陈默快速说,"你帮我做两件事。第一,国贸那边有多少人在盯着?"
"三个观察点,轮流值班,二十四小时。但今天早上有个异常——周正雄的办公室楼层,保洁人员换了一班。平时是早上七点,今天提前到了五点。"
"新来的保洁?"
"对,临时替换的,说原来的请假了。我在查那人的底。"
陈默想了想:"别查太紧,会被发现。但注意观察周正雄今天出不出门。如果他离开国贸,第一时间告诉我。"
"明白。第二件事?"
"司徒教授。我需要你联系他,让他把国家实验室的备用网络接口准备好。如果我的备份数据要公开,需要能扛得住攻击的发布通道。普通媒体站不住。"
王奕沉默了两秒。"你真要走到那一步?"
"先准备好。到用的时候再决定。"
挂断电话后,陈默沿着菜市场外面的路走回县城。他没有再回泵站,也没有去采石场。他去了一个谁都想不到的地方——城南老街的知远书店。
老人看见他时,手里的线装书掉在了柜台上。
"你没走?"
"走了,又回来了。"陈默把门带上,"我需要一个地方待几个小时。就几个小时。不会被发现的。"
老人看了他几秒,然后从柜台下面摸出一把钥匙。"后面有个储物间,从厨房穿过去,门通向后巷。"他把钥匙递过来,"如果有人问起,你是我远房侄子,来帮忙收拾旧书的。"
陈默接过钥匙,在老人对面的椅子上坐下。"有件事想问您。"
"问。"
"我父亲当年保存的那些数据里,除了U盘以外,还有没有别的东西留在您这里?"
老人看着他,眼睛在昏暗的光线里像两口深井。"为什么这么问?"
"因为周正雄想要的,可能不只是U盘里的量子代码。"陈默说,"他想要的是整个黎明计划的原始记录——包括那次爆炸的详细数据和事后处理过程。那本笔记本里提到了'完整日志',但我父亲的笔记本上只写了前面几个月。后面的记录不见了。"
老人沉默了很久。店里很安静,只有窗外偶尔经过的行人脚步声。阳光透过积灰的窗玻璃射进来,在空气中形成一束倾斜的光柱,尘埃在光柱里缓慢旋转。
"你父亲临走前,确实把另一样东西交给了我。"老人终于开口,"他说,'如果有一天小默需要看到全貌,就给他这个。但一定要等他自己问。'"
老人蹲下,在柜台下面的地板上摸索了一会儿。然后他拉开一块松动的木地板,从下面的暗格里取出一个扁平的金属盒子。盒子是银灰色的,表面没有任何标识,只有一个极小的莫比乌斯环压印,被手指反复触摸过,边缘已经磨得光滑发亮。
"这是什么?"
"黎明计划最后一阶段的完整实验记录。"老人把盒子放在柜台上,手在盒面上停留了一下,像在做某种告别,"包括爆炸前的全部数据和爆炸后的损伤评估报告。你父亲保存了这些东西,但他不知道该怎么处理它们。销毁太可惜,公布太危险。所以他选择先放着。"
陈默打开盒子。里面是一沓厚厚的文件,纸张已经泛黄发脆,边缘有被反复翻阅过的痕迹。最上面是一张手写的目录页,字迹和父亲笔记本里的一样——端正、清晰、带着一种学术式的克制。
他快速翻了几页。数据、图表、时间线、事故分析。有些内容他看不太懂,但那些化学式和物理参数的表头,以及最后几页上关于"量子态残留与生物组织交互作用"的附录,让他意识到这些东西的价值可能比U盘本身还要大。
"这个盒子的事,还有谁知道?"
"你父亲和我。加上你。"老人顿了顿,"还有林远山。但他已经不在了。"
陈默把盒子合上。"我需要带它走。"
"本来就是留给你的。"老人说,然后转身去拿了一捆旧报纸,"包起来,别让人看出是什么。"
上午十点,陈默在书店储物间里打开了那台电脑。
他把金属盒子里的文件一页页扫描成数字格式。纸张太脆了,翻动时要格外小心,稍微用力就会在边缘出现新的裂纹。他花了两个小时才扫描完所有内容,然后开始分类——数据文件、分析报告、事故描述、人事记录。每类单独建立一个文件夹,全部加密。
在扫描到倒数第三份文件时,他停住了。
那是一份手写的会议纪要,日期是1997年12月5日——爆炸发生后的三个月。与会者名单里有一个名字被圈了出来,旁边用不同的笔迹写了批注:"此人坚持封存全部数据,理由不成立。现场记录已被修改。建议驳回。"
被圈出的名字是:陈远山。
陈默盯着那行批注看了很久。写批注的人不认识,但"现场记录已被修改"这句话,和父亲笔记本里那句"我保存了核心数据的备份"遥相呼应。
爆炸现场的记录被改过。父亲在爆炸之前就预见到了这件事,所以他才提前备份了数据。而那个在会议上主张"驳回"父亲建议的人——陈默翻到会议纪要的最后一页,看到了签名栏。
周正雄。
陈默把这份纪要单独放进一个加密文件夹,命名为"证人1号"。然后继续扫描剩余的文件。
中午十二点,他完成了全部工作。电脑屏幕上的进度条走到100%时,他把那台电脑和金属盒子一起塞进背包,然后推开了储物间的门。
老人坐在柜台后面,正在慢悠悠地包一本旧书。
"扫描完了?"
"完了。"
"那就走吧。"老人把包好的书放在旁边的架子上,没有抬头,"下次回来的时候,记得带点好茶叶。你爸以前每次来都带,龙井,不是那种超市货。"
陈默站在柜台前,看着老人花白的头发和微微驼起的后背,张了张嘴,什么都没说出来。他转身走向后门时,老人补了一句:
"后巷往北走三百米,有个修车铺。老板姓孙,欠你爸人情。他那有辆旧摩托,能骑。"他顿了顿,"别跟任何人说是我告诉你的。"
陈默拉开后门。巷子里很安静,午后的阳光斜斜地照在青石板上,一只花猫蹲在墙头舔爪子。
他沿着后巷往北走了三百米,果然看见一家修车铺。铺子门口停着几辆电动车和一辆沾满油污的旧摩托——黑色车身,坐垫上有一道用胶带补过的裂痕。老板是个五十多岁的男人,正蹲在地上修一辆自行车的链条。
陈默走过去蹲在他旁边,像在看修车。"孙师傅?"
男人抬起头看了他一眼,什么都没问,从口袋里掏出一把钥匙扔在他面前。"油箱是满的。北边那条山路能通到省道。到了省道别停,继续走。"
陈默接过钥匙,跨上摩托。"谢谢。"
"不用谢我。"孙师傅低下头继续修链条,"你爸当年也骑这辆车。他走的时候,把车寄存在我这里,说将来会有人来取。"
陈默拧动钥匙。引擎发出一阵低沉的轰鸣,在安静的巷子里格外响亮。他戴上头盔,驶出了巷子。
摩托车的速度比走路快多了。陈默沿着县城北边的山路行驶,风从耳边呼啸而过,两侧的田野和村庄迅速后退。他在后视镜里看了一眼——县城正在变小,那些低矮的楼群和烟囱逐渐缩成地平线上的灰色剪影。
他拐上省道时减速了一下。路牌指向北:北京 387km。
陈默没有停,继续往北骑。寒风灌进外套,冻得手指发僵,但他没有放慢速度。
手机在口袋里震动。他在路边停车,掏出接收器。一条新的消息,来自他布在县医院的那个录音信标——自动触发了,有人在那附近说话。
他点开音频。背景里有风声和远处车辆的声响,然后是两个人的对话。其中一个人的声音他认得——蛇头的。另一个声音更年轻,带着急切和不耐烦。
"……人找到了没有?"
蛇头的声音平静:"他不在南边。泵站和采石场都搜过了,没人。"
"那就扩大范围!我爸说了,无论如何今天之内必须确认那本笔记是不是原件。如果是假的他绝对留了后路——"
年轻的声音忽然顿住了。陈默握着接收器的手指收紧了一些。那是周扬。
"他不可能走太远。"周扬继续说,语速很快,"他身上没有交通工具,县城就这么大。除非有人接应。查一下城南那边的老住户,有没有和他家有关系的。"
蛇头没有马上回答。停顿了两三秒后,他说:"你在替他着急?"
"我着什么急?"周扬的声音尖锐起来,"我只是不想再拖。早点解决早点完事。你以为我愿意在这破地方待着?"
音频到这里中断了。陈默坐在摩托上,握着接收器,看着前方延伸向远方的省道。周扬也来了。他不在北京,在县城。而且他在主动参与搜索。
陈默把音频保存,然后收起接收器,重新发动摩托。寒风再次灌入他的衣领,吹得脸颊生疼。他在心里把刚才那段音频快速过了一遍——周扬用的是"我们",他把自己和零点绑在了一起。但他在提到"我爸"的时候,那个词的音调里有某种异样的、被压制下去的东西。
陈默继续向北骑行。
下午两点,他到了一个叫青石镇的地方。这是一个比县城更小的镇子,只有两条街和一家国营加油站。他把摩托停在加油站后面,在旁边的杂货店里买了一瓶水和一袋饼干,坐在路边吃。
坐在公路边的水泥墩上,他把金属盒子里扫描的那些文件重新翻看了一遍。其中一份爆炸后的设备残骸分析报告上标注了一个细节——在事故现场采集到的量子态残留样本中,有一部分表现出"非预期持续性"。也就是说,爆炸之后,量子代码的一部分并没有消失,而是留在了物理环境中,以某种低能态的形式持续存在了相当长的时间。
这份报告的署名是林远山。日期是1998年2月。林远山在笔记中写下了结论:"建议尽快查明残留物是否可能通过常规物理接触发生转移。如存在这种可能性,相关人员和设备应接受长期监测。"
旁边有另一行笔迹,更小更潦草,看起来是父亲写上去的注释:"已转交司徒。他说会跟进处理。"
陈默合上报告。他想起那枚U盘,想起第一次插入时那种奇异的感觉——当时他以为是系统在教他,现在他开始怀疑,那个过程到底是不是"教导"。
他把资料收好,跨上摩托车。发动引擎时,手机又震动了。林雨晴发来一条短消息:"你知道了吗?"
"知道什么?"
"周扬在你那边。王奕的人截到他在县城里的通讯记录。他在带人搜索。"
陈默回了一个字:"知道。"
"王奕让我问你——还要留周扬那条线吗?"
陈默看着这句话,沉默了几秒。然后他打字:"先留着。他还在说话。只要还在说话,就会继续说漏。"
下午四点,陈默在青石镇北边的山路上停了第二次。
这条山路是旧省道的废弃路段,柏油路面已经开裂,长出了杂草,偶尔有一辆农用三轮车经过。他把摩托推到路边的树丛里藏好,然后爬上了旁边一座小山坡。山坡顶部有一棵老松树,树干粗壮,枝丫伸展,可以俯瞰下面的山谷和远处的平原。
他坐下来,打开电脑。手机信号在这里很弱,但接收器还能连上那八个信标的网络。屏幕上显示,县城方向的绿点分布范围比早上更广了——大部分集中在城南和河岸一带,但有三个点在向县城北边移动。
他们正在扩大搜索半径。而且方向是往北。
陈默把电脑合上,靠在松树干上。山风从谷底吹上来,带着枯草和泥土的气味。远处,太阳正在向西移动,把天空染成一片暖橙色。
他还有时间。但不多。
傍晚六点,他收到了一条意外的消息。
消息来自米沙——那个俄罗斯少年,用加密频道发来一段文字:"零点内部的某个服务器今天下午一直在往外发送大流量数据。方向是一个我没见过的IP,但在国内。可能是有人在转移什么东西。"
陈默回复:"能查到目标IP的位置吗?"
"只查到了省区。在你们省。但具体城市被多层跳板掩住了。不过——流量里夹杂着一种特殊的包头模式,和我去年在莫斯科时截到过的零点研发网络协议很像。他们在从某个本地设备往主服务器同步大量数据。你那边是不是丢了什么东西?"
陈默看着这条消息。蛇头带走了那本假笔记本。假笔记的内容正在被同步到零点的服务器上。而周正雄看了那些内容,觉得"满意"。
但他满意的是假的内容。这意味着他对黎明计划的真实情况至今仍有盲区。父亲的笔记中那些被删改的核心段落,周正雄从未见过。他以为他拿到了全部,但实际上他手里那本笔记缺失了最致命的那几页——关于量子代码"需要宿主"、关于爆炸后的量子残留物可能通过物理接触转移、关于林远山临终前对"火种"计划的最后嘱托。
陈默看着远方逐渐暗淡的天光,忽然有了一个清晰的想法。如果周正雄对真相的理解是有漏洞的,那他就有可能在关键节点上做出错误的判断。而错误的判断,就是可以被利用的缝隙。
他给米沙回复:"那个数据流,能不能加一段干扰进去?不用破坏,就让它看起来像是传输出了点小问题,需要人工确认。"
米沙的回复来了:"可以。但需要你那边提供一个特定的触发信号。你还有能联网的、携带零点通讯协议特征的设备吗?"
陈默低头看着背包里的接收器。那里面有他从零点设备上反编译出来的协议栈,也有他用来触发了后门诊断模式的程序框架。理论上可以模拟一个携带零点设备特征的信号源,让米沙的干扰程序通过那个"信标"广播出去。
"有。"他回复,"我准备一下。两小时后给你触发包。"
山风变大了。松树顶端的针叶发出细碎的、持续的低响,像某种遥远的、没有旋律的歌。陈默靠着树干,把接收器和电脑连接起来,开始构造那个触发信号。
在这同时,他想到了另一个问题。
周正雄为什么一定要那份原始记录?如果他只是想要量子代码的力量,他可以直接从陈默这里抢U盘。但他要先确认原始记录的真伪——这说明他对黎明计划的某个部分仍然不确定。他需要确认某些事。
"现场记录已被修改。"
父亲会议纪要里的那句话浮上来。周正雄当年修改了爆炸现场的数据。他在掩盖什么。而他现在疯狂寻找原始记录,是因为他担心那些被覆盖的真相有一天会重新浮出水面。
陈默在电脑上打开那份会议纪要的扫描件,翻到第二页。在讨论环节的记录中,有一段被删改的痕迹——原文字被人用修正液涂掉了,然后在旁边重新写了内容。但扫描的高清度让底层的字迹隐约可辨。陈默把图像调整到最大对比度,辨认出了下面那行被覆盖的文字:
"周正雄提出,量子代码的失控可能与实验人员的生物特征接触有关,建议立即隔离所有现场人员并进行全面体检。此提议被当场否决。"
而在修改后的文字中,这段变成了:"与会人员一致认为,事故原因是设备过载导致的系统崩溃。无需进一步医学检查。"
陈默盯着那段被覆盖的文字看了很久。周正雄当年曾经提过正确的建议——关于量子代码可能通过生物接触转移。但他的建议被否决了。然后他修改了现场记录,抹掉了自己说过的那些话。
为什么?
陈默关了电脑,靠在树干上想这件事。天色正在变暗,远处平原上的灯火开始一盏盏亮起来。山风持续地吹着,松枝发出低沉的共鸣。
也许答案在更早的地方。在父亲笔记里那个从未写完的句子:"量子代码不是工具,是生命。它需要有人类作为宿主才能存活——"那后面父亲原本还要写什么?
陈默从背包里取出父亲的原件笔记本。翻到那一页,在灯光下仔细看。那行字的结尾处,纸张表面有一道极浅的压痕——像是有人用没有墨水的笔尖在写完之后又描了一遍。他把纸张倾斜到侧面,让光线从极低的角度照过来,看见了那道压痕留下的轮廓。
那是一个字。只写了一半,笔画没有完成,看起来像是一个"我"字,但最后一笔断了。
陈默合上笔记本,看向远方逐渐沉入地平线的太阳。
六点四十分,他收到了米沙的确认消息:"触发包收到了。干扰程序会在接下来两小时内分四次播送,每次持续时间三分钟。零点那边的数据流应该会出现几次'传输异常'的提示。他们会派人去检查,但找不到具体故障点。"
陈默回复:"足够。"
他收起电脑和接收器,从树丛里推出摩托车。油箱里的油还够跑一百多公里,他决定再往北走一段,到一个更远、更安全的地方过夜。但就在他刚跨上摩托的时候,口袋里的接收器发出连续的短促震动——不是消息提示,是警报模式。
他低头看屏幕。八个信标中有一个刚刚触发了高优先级告警:县医院急诊楼外侧的录音信标,持续捕捉到声音信号超过十五分钟。这种长时间录音不会自动触发,除非系统判断有必要——比如有人在信标附近反复移动、停留、交谈。
陈默点开那段录音。初始几秒是空白,然后是一个男人的声音,很轻,像是压着嗓子说话:
"……确定今晚能处理?"
另一个声音回答:"肯定。"这是蛇头。"他要我们今晚就确认那本笔记的真假。如果里面有删改痕迹,就启动下一步。"
"什么下一步?"
蛇头沉默了几秒。"人带走。东西销毁。天亮之前完成。"
陈默握着接收器,夜风从山间灌入,吹得他的外套猎猎作响。他重新启动了摩托车的引擎。
"他加快进度了。"他低声说。声音被引擎的轰鸣吞没,但这句话的每一个字都沉在了他的胸腔里。
摩托车驶入夜色。北方的路在车灯的光柱中延伸,两侧的田野和树影被不断甩向后方。陈默看着前方逐渐亮起的星空,把油门拧到了底。
第二十章 引爆点
陈默在晚上九点抵达了北边一个叫石桥村的小村庄。
村庄只有十几户人家,多数已经熄灯睡了。他把摩托藏在一片竹林后面,步行走进村子,在村口一个废弃的打谷场上坐下。从打谷场向北望去,是一片平整的农田和远处的山影。夜空清朗,星星比县城里密集得多。
他决定就在这里动手。
不是逃跑,不是躲藏,是主动出击。周正雄加速了进度,蛇头今晚就要动手。如果他还留在被动等待的状态,天亮之前就会被找到、被带走、被拆解成数据。所以他要做一件周正雄绝对想不到的事——把整个棋局掀翻。
他掏出接收器,开始起草一条加密消息。收件人:司徒玄、张远航、林雨晴、王奕、米沙。主题只有一个字:爆。
"计划变更。今晚上线。所有证据准备公开:父亲的笔记本原件扫描、黎明计划完整日志、爆炸现场被修改的记录、零点内部通讯截获、后门协议技术文档。发布通道:国家实验室备用网络和米沙那边的国际节点同步推送。发布时间:凌晨两点。"
他按下发送键。几秒钟后,回复陆续到来。
张远航:"通道准备好了。我在实验室盯着,随时可以推送。"
林雨晴:"数据整理完成。我在做最后的脱敏处理。凌晨一点前给你。"
王奕:"我在国贸附近。周正雄今晚没离开办公楼。他还在等消息。"
米沙:"国际节点已就绪。莫斯科这边凌晨是白天,几个学术媒体已经打过招呼了。等你信号。"
司徒玄的回复最长,也只有一句话:"你确定要走这一步?"
陈默看着那条消息,打了一个字:"确定。"
他收起接收器。夜风从田野上吹过来,带着干枯的稻茬和泥土的气息。远处的村庄里亮着一两盏窗户的灯光,像黑暗中不肯熄灭的眼睛。
他现在要做的最后一件事,是把周正雄的注意力留在一个地方——让他以为陈默还在县城附近,还在被搜索,还在被动逃窜。这样他就会把精力放在抓捕上,不会第一时间注意到那条正在升起的、所有人都能看到的数据流。
陈默用最后一点电量和县城周边那八个信标建立了连接。他激活了其中两个——一个在泵站,一个在采石场——让它们广播一段模拟信号,造成他在那附近移动的假象。如果零点的人追踪到这些信号,他们会认为陈默还在河岸一带。
然后他关闭了所有主动发射信号的设备。
打谷场上彻底安静了。只有风吹过竹林的细碎声响和远处偶尔的犬吠。陈默靠着石碾子坐下来,仰头看着满天的星星。南方冬夜的星空不像非洲那么密集,但依然能看清猎户座的腰带和天狼星的冷光。
他等。
晚上十一点,林雨晴的消息来了:"所有数据整理完毕。三个备份:国家实验室节点、国际节点、还有一个备用放在你父亲的老书店那台电脑里。万无一失。"
陈默回了一个"好"字,然后把接收器调到仅接收模式。从现在到凌晨两点,他不会发送任何主动信号,不会让任何设备暴露位置。
远处传来一声摩托引擎的声音,由远及近,又渐渐远去。那不是追他的,那只是某个晚归的村民。但在寂静的夜里,那个声音让他想起自己几个小时前骑过的那条山路,想起父亲骑过同一辆车走过同一条路,想起老人说的那句"他走的时候把车寄存在我这里"。
十二点零七分,他口袋里的鹅卵石硌到了腿侧。他把它掏出来握在手里,感觉到石头因为体温而微微变暖。白色纹路在星光下隐约可见。
零点二十三分,天空飘起了细小的雪花。极小极轻的雪粒,落在脸上像凉凉的指尖触碰了一下就消失了。陈默仰起头,看着那些雪花从黑暗中降下,在星光里短暂地闪现,然后融进夜色。这让他想起北京的那场初雪,想起实验室窗台上堆积的白色,想起张远航在雪夜里递来的热茶。
他握紧了鹅卵石。
凌晨一点十五分。林雨晴发来最终确认:"数据全部就位。等待触发。"
陈默站起身。他拍掉外套上积的薄薄一层雪粒,深吸了一口气。夜风灌进肺里,寒冷而清新,像刀子一样锋锐。他掏出接收器,在屏幕上输入了最后一个命令。
这条命令不是发给张远航的,不是发给林雨晴的,不是发给米沙的。它发给所有节点——国家实验室的发布服务器、莫斯科的学术站点、以及王奕守在北京的那个备用通道。
命令只有三个字:"开始推。"
他把接收器放回口袋,站在星光和细雪里,等待着。
凌晨一点五十六分,他的手机——那个关机状态的备用手机——突然自动亮了一下。没有消息,只是屏幕闪了一下蓝光。这标志着第一个节点已经开始推送数据。
凌晨一点五十九分,第二个节点激活。
凌晨两点整,第三个节点激活。至此,三个数据流从三个不同的方向同时上线,覆盖国内国外、学术圈媒体界、公开网络和加密通道。
陈默靠着石碾子坐了下来。该做的都做了。现在他要做的,就是等天亮。
凌晨三点,打谷场北边的田野里传来脚步踩在干土上的声音。
陈默睁开眼睛。他没有睡着,只是闭着眼养神。那脚步声很轻,很克制,但在这个万籁俱寂的时刻清晰得无法忽视。一个人,步速不快不慢,从北边那条田间小路上走过来。
陈默没有动。他的手指轻轻碰了一下口袋里的U盘外壳,然后收了回来。脚步声越来越近,最后在距离他大约二十米的地方停住了。
夜风中传来打火机点燃的声音。一点橙红色的火光在黑暗中亮了一瞬,然后又熄灭——烟头被点燃了,那人抽了一口,吐出的白气在星光下短暂可见。然后是一个声音,沙哑的,带着一种说不清的疲惫:
"你炸了。"
陈默认出了那个声音。他没有转头,只是看着前方黑暗中的田野,声音平静:"是啊。炸了。"
周扬从他侧后方走出来,烟头在他指间亮着微弱的红光。他没有穿那件深灰色风衣了,换了一件黑色的羽绒服,领口拉到了顶。脸上有擦伤,左颧骨上一道细长的红痕,像是被什么粗糙的东西划过。
"你知道这次会怎么样吗?"周扬在他旁边两三米的地方站着,没有靠近,"你那些数据放出去,我坐牢是肯定的。所有人都坐牢。"
"嗯。"
"我爸也会。"
"嗯。"
周扬猛吸了一口烟,把烟头扔在地上,用脚碾灭。他站在那里,双手插在口袋里,肩膀微微缩着,看起来比实际年龄小了好几岁。"你觉得值得?"
陈默转头看向他。在微弱的星光下,周扬的表情是模糊的,但能看清他眼睛里的东西——那种空荡荡的、不知道往哪里看的茫然。
"你今晚在医院录音里说的话,"陈默说,"'早点解决早点完事'——你是真的想早点完事,还是想让我赶紧离开?"
周扬没有回答。他只是看着前方的黑暗,像在看一个很远很远的、看不清的东西。沉默持续了很久,久到陈默以为他不会回答了。然后他的声音响起来,很轻,像是对自己说的:
"我妈的手术排在下个月。"
风声从田野上吹过来,带着雪和泥土的气息。陈默看着周扬的侧脸,那张脸上的表情太复杂了,复杂到任何一个词语都不足以概括。但陈默看见了那条细微的裂缝——在"下个月"那三个字被说出来的时候,周扬的喉咙动了一下。
陈默从背包里掏出一张纸,折叠成方块,隔了两米扔过去。纸落在周扬脚边的地上。他没有捡。
"地址。"陈默说,"北医三院,肿瘤科。如果你妈的手术需要转院的话,打电话给这个号码。"他报了一串数字,是张远航的一条备用线,"他们会帮忙。"
周扬低头看着地上那张纸,没有捡。他的肩膀绷紧了又松开,然后他弯下腰把纸捡了起来,放进口袋。动作很快,像是怕被看见。
"外面有七个人。"他说,声音恢复了那种低沉的、带刺的腔调,但听着总觉得少了点什么,"分布在村子四周。他们天亮之前会进来。你跑不掉了。"
"我知道。"陈默说。
周扬看了他几秒,然后转身,往来的方向走。走了几步,他停住。没有回头,只是背对着陈默说了一句话:"你数据里有一份关于现场记录的附件——1997年12月那次会议纪要。里面有个'现场记录已被修改'的批注。"
"我知道。"
"那不是我爸改的。"
陈默没有说话。周扬的背影在星光下站了两三秒,然后他迈步走入黑暗中,脚步声渐远,最后完全消失。
陈默重新靠回石碾子,仰头看着天空。细雪还在飘,天边隐约出现了一线浅灰色的光——黎明还很远,但已经有了开始的迹象。他低头看了一眼接收器,屏幕上显示着推送进度:国家实验室节点100%,国际节点100%,备用节点98%。
还差一点。
风从北方吹来,带着更冷的寒意。陈默把羽绒服的帽子拉起来,把双手收进口袋。指尖碰到了那枚U盘外壳的边缘,又碰到了那块鹅卵石的圆弧。他把两个都握在手里,一个凉的,一个因为握着太久已经变暖了。
然后他就这样坐着,等待着天光完全亮起。
天亮的时候,一切都会被看见。
而看见本身,就是结局的开始。
第二十一章 晨光
凌晨四点二十分,石桥村北面的田野上亮起了第一盏车灯。
陈默坐在打谷场的石碾子上,看着那道光从田间小路的尽头出现,在黑暗中摇晃着靠近。那是一辆SUV,黑色的车身被泥土覆盖了大半,车灯在雾气中形成两束模糊的光柱。它在距离打谷场大约一百米的地方停下,引擎没有熄火,排气管在冷空气中吐着白雾。
车灯没有关。两束光直直地照射过来,把打谷场照得通亮,把陈默的影子拉得很长,投射在身后的竹林上。
陈默没有动。他的手在口袋里握着那块鹅卵石,感受着石头因为体温而变得温热的弧度。
第二辆车从村子南边开了进来。然后是第三辆,从西侧那条更窄的土路上。三辆车形成了一个松散的包围圈,车灯都亮着,从三个方向把打谷场照亮。陈默坐在圆心。
第一个下车的是蛇头。他穿着黑色冲锋衣,拉链拉到顶,脸颊在车灯逆光中显得格外瘦削。他站在车门边没有动,只是看着陈默,像在确认这是不是一个陷阱。然后他朝副驾驶的方向做了个手势,第二个人下了车。
是周扬。他在蛇头侧后方站定,没有上前。羽绒服的帽子拉低了遮住半张脸,但陈默认出了他那双在高中时就认识的、总是藏着什么的眼睛。
蛇头终于迈开了脚步。他绕过车头,穿过车灯光柱,走到打谷场的边缘,距离陈默大约五六米的地方停下来。他的皮鞋踩在干土和碎石上,发出细碎的声响。
"你做了个错误的选择。"他说。
陈默看着他的眼睛。在逆光中,蛇头的瞳孔缩成了两个极小的黑点,像针尖一样锐利。嘴角有一道微微的弧度,那算不上笑,更像是某种确认猎物已经落网的平静。
"数据已经发出去了。"陈默说。他的声音很平稳,没有提高也没有压低,在清晨的寂静里像石头投入水面一样清晰,"零点内部通讯的截获,通讯协议后门的分析,黎明计划的原始实验日志,爆炸现场被修改的记录——今晚凌晨两点开始推送,所有节点同步公开。你现在抓住我也没有用了。"
蛇头的表情没有变化。但陈默注意到他的目光微微移动了一下——没有看旁边的手下,没有看车灯方向,而是在陈默说完"数据已经发出去了"之后,很短暂地、几乎是下意识地朝周扬的方向偏了一瞬。那个动作太快了,快得像眨眼。但陈默捕捉到了它。
"我相信你确实发了些什么。"蛇头说,语气平铺直叙,"但我不认为那会是完整的。你手里还留着原件,不然你早就跑了。你坐在这里等我,说明你需要时间。"
他的推断只差了一步。陈默确实需要时间——但不是为了逃跑。他是为了确认那三股数据流全部被接收、被阅读、被开始传播。他需要让黎明到来之前的时间足够长,长到东西已经不可能被撤回。
蛇头往前走了半步。他的右手从口袋里抽出来,手里握着一个巴掌大的金属设备,形状像老式收音机,但正面有一个黑色的圆形扫描头。陈默认得出来。那是嗅探器的便携版本,体积更小,但功能相同。
"上面要的是你脑子里的残留信号。"蛇头举起那个设备,对准陈默的方向,"我不关心那些数据发到哪去了。发出去的东西,最后都可以用别的'真相'盖过去。但你脑子里这个东西——"他拍了拍设备的外壳,"如果今晚提取出来了,什么都掩盖不了。"
他往前走了一步。这一步跨进了打谷场的范围,脚下踩碎了一块干泥。就在他跨出第二步的时候,田野南边传来一阵急促的汽车引擎声。声音越来越大,一辆银灰色的越野车从村口那条窄路上冲了出来,速度很快,车头灯把两束光劈开夜色,直直地撞向蛇头身后的车队。
司机在距离第三辆车大约十来米的地方急刹,轮胎在泥土路面上发出刺耳的摩擦声。车门打开,一个人影跳了出来。
是张远航。他的左臂上缠着新的绷带,但右手拎着一个黑色的工具箱,跑向打谷场。
蛇头迅速回头,同时抬手示意身后的人。但他还没发出指令,林雨晴从村东侧一棵老槐树后面绕了出来——她什么时候到的,陈默完全不知道——手里拿着一个更小的发射装置,对准蛇头所在的方位扣下了扳机。一团白色的东西射出来,在空气中膨胀成一张巨大的网,边缘缀着重物。那是某种非致命捕捉装置,打在蛇头侧身上,虽然没有完全网住他,但逼得他踉跄后退了几步,手里的嗅探器脱手掉在干草地上。
周扬在几米外看着,没有动。
张远航冲到了陈默身边,快速扫了一眼他的状况——没有明显外伤,神志清醒——然后转向蛇头和他的手下。林雨晴翻过田埂,快步靠拢过来,在陈默另一侧站定。
"你什么时候到的?"陈默问林雨晴。
"比他们早二十分钟。"她把发射器端在胸前,目光警惕地盯着前方,"张远航从省道那边绕过来的,我走的是田野。"
蛇头站稳了身体,弯腰捡起掉在地上的嗅探器。他的脸上第一次出现了某种不同于平静的表情——不是愤怒,更像是某种被意外推迟了计划的、略带烦躁的调整。他用手指抹了一下网子在脸上留下的白色痕迹,然后看向周扬。
"你。"
周扬没有看蛇头。他低着头,双手依然插在口袋里,羽绒服的帽子遮住了大半张脸。肩膀微微弓着,像在抵抗什么重量。
"你过来,把设备捡起来。"蛇头的声音冷了一度,"别让我说第二遍。"
周扬终于抬起头。在车灯的逆光中,他的表情模糊不清,但他的动作很清晰——他从口袋里抽出手,向前走了一步。然后他停了下来。
"我不去。"他说。
声音不大,但足够让面前那圈人全部听见。蛇头眯了一下眼睛。
"你说什么?"
"我说我不去。"周扬重复了一遍,声音比刚才更稳了一些,但每个字都像从某个很窄的通道里挤出来的,"你跟他自己处理。我不干了。"
蛇头看了他三秒。然后他的表情恢复了一种冰冷的平静。"你爸知道你这样说吗?"
周扬的嘴角动了一下,像是想说什么,又咽了回去。他站在那里,手指微微蜷着,垂在身侧。车灯照在他身上,把他的影子拉得很长,一直延伸到田野的边缘。然后他把羽绒服的帽子往后推了推,露出一张被车灯光照得过于明亮的脸。那双眼睛里有什么东西在翻动——陈默认得那个表情。在高中机房里,周扬每次答不出题却不肯认输的时候,脸上就是那种表情。但这一次底下多了点别的东西。
"他不在乎我怎么说了。"周扬说。声音比刚才轻了,但反而更清晰,"他从来没在乎过。"
蛇头没有接话。他只是看了周扬一眼,然后转头望向陈默。那目光里有某种快速的重新计算,像在一张已经画好的布局图上看到了一个不该出现的偏差。他做了个手势——不是对周扬,是对旁边另外两个正在靠近的手下。
"把他带走。"
那两个男人加快脚步向周扬走去。周扬没有躲,也没有跑。他就站在原地,看那两个人朝他靠近。但在他们伸手碰触他之前,田野对面的山脊线上突然亮起了更多的光——不是车灯,是一种更刺眼的白光,从山坡顶部的树林方向照射过来。紧接着是引擎声,不止一辆,是好几辆,混杂着对讲机的电流杂音。
陈默转头看向那个方向。白光从山坡上向下移动,汇成一条光带,沿着田间的土路向打谷场而来。他看不清具体有多少辆车,但至少五六辆,车顶都亮着蓝白相间的标志灯。
蛇头的手顿住了。他的目光快速扫过那片光带,然后回到陈默脸上。表情彻底变了——不再是那种掌控者的平静,而是冷硬的、被截断的审视。
"你报了警。"
"是司徒教授报的。"陈默说,"我的数据推送到国家实验室节点之后,同步传了一份到相关部门。程序走得比我想象的快。"
车队的灯光快速接近。第一辆车开上了打谷场边沿的土路,车灯把整个打谷场照得亮如白昼,连石碾子旁边那丛干枯的杂草都纤毫毕现。车门打开,有人从里面下来。陈默认出了司徒玄的大衣,还有他身后那个穿制服的、身形笔直的身影——像是某个行动部门的负责人。
蛇头看了一眼手里的嗅探器,又看了一眼逼近的车队。他没有试图反抗,只是把那个设备放回了口袋。动作很慢,像是在用最后的几秒钟计算什么。
司徒玄走到了打谷场中央。他看了一眼陈默,目光有一瞬间的停顿,然后朝陈默微微点了一下头。然后他转向蛇头,从大衣内袋取出一个对折的文件,展开来。
"周正雄涉嫌窃取国家重大科研成果、非法从事高风险量子实验、以及涉嫌危害公共安全,目前已被依法控制。"他停顿了一下,声音像砂纸擦过木板,"你手里的设备是违禁品。建议不要做多余的动作。"
蛇头没有动。他站在原地,手掌从口袋边缘滑出来垂在身侧。他的目光掠过司徒玄,掠过陈默,掠过张远航和林雨晴,最后落在周扬身上。周扬被那两个手下架着站在一边,但那双眼睛直直地看着蛇头,里面有什么东西在发光。像火。很小,刚亮起来,不确定会不会被风吹灭,但确实燃着了。
陈默从石碾子上站了起来。他的腿因为坐得太久有些发麻,膝盖关节发出细碎的声响。他走到司徒玄身边,看着远处山脊线上正在蔓延开的晨光——浅灰色的天边透出了一线极淡的橙红色,正在缓慢地扩散,把那些黑暗的轮廓一点一点地勾勒出来。
天亮了。
第二十二章 余烬与种子
三个月后,北京。
三月的风从西边吹来,带着解冻泥土的气息,拂过清华园那些灰褐色的枝丫。老银杏的枝条上冒出了嫩绿色的苞芽,比米粒大不了多少,蜷在树皮的褶皱里,像还没展开的秘密。
陈默站在图书馆四楼的窗边,看着楼下草坪上几个小孩在放风筝。一只浅红色的蜻蜓在蓝天里飘着,线轴攥在一个穿黄色外套的小男孩手里。他仰着头看那只蜻蜓越飞越高,线在他手里一松一紧,像是在和风谈判。
身后传来翻动纸张的声音。陈默转过身,走回靠窗那张长桌旁坐下。桌上摊着一份打印出来的文件,首页盖着"密"字的红戳,下面一行日期是三天前。
文件的全名是《关于"黎明计划"历史事件及衍生案件的完整调查报告》,编制单位是国家量子安全特别委员会。页数很多,他读了大半,剩下最后的附录部分还没来得及翻。
对面坐着司徒玄。老教授今天没穿大衣,一件深灰色的毛衣,领口洗得有些松垮了。他在等陈默看完。
"爆炸的真相,"陈默把文件翻到中间一页,手指点在几行文字上,"报告里写清楚了。不是设备故障,是量子代码与实验系统产生了不可预测的耦合,导致能量回路过载。"
"对。"司徒玄的声音比平时低一些,像是把一段很长的叙述压缩成了这一个字。
陈默又翻了两页。"现场的原始数据被修改过——确实是你之前说的那样。但报告里查到,修改记录不是周正雄一个人做的。团队里有三个人参与了。"
"我知道。"司徒玄说。他端起面前的茶杯,没有喝,只是握在手里转了半圈,"那三个人后来都离开了学术圈。一个去了企业,一个转行做金融,还有一个——"他停顿了一下,"移民了。报告里应该写了。"
陈默翻到那页。上面确实写着名字和处理结果。两页之后,有一个章节的标题是"关于周正雄个人行为轨迹的梳理"。他在那里看到了一个他不确定的细节——周正雄修改爆炸现场记录的动机。
司徒玄像是看穿了他的疑问,把茶杯放回桌面,声音缓慢而清晰:"他改记录的时候,不是为了掩盖自己的责任。他是在掩盖一个'可能性'——他当时认为,量子代码可能通过物理接触的方式在人体内残留。这个猜测如果被正式记录,整个团队都要接受长期健康监测。他自己不愿意。"
"但他后来一直在找那个U盘。"
"对。因为后来他改变想法了。"司徒玄的目光落在远处的某个点上,"他花了十年,从那个'不愿意被监测'的人,变成了'愿意为了拿到它付出一切'的人。人到了某个位置,欲望会自己长出来。"
陈默没有追问。他翻过那页,继续往下读。后面的内容有些他已经知道,有些是第一次看到。报告中引用的证词、物证和技术分析,像一块块碎片被重新拼合在一起。有些碎片在报告里有了新的位置,这些位置改变了整个画面的面貌。
他看完最后一页,合上文件。封面上那个红色的"密"字在午后的阳光下像一枚干涸的印记。
"还有一件事,"陈默说,"我父亲的笔记本里有一处被涂改的地方。不是原件,是复印件。我反复对照过,原件上确实有一个没写完的字,像是被人刻意擦掉了一半。"
司徒玄安静地看着他。午后的图书馆里很安静,只有远处偶尔翻书的沙沙声和窗外风吹过树枝的轻响。很久之后,他开口了:"那个字是'我'。"
"什么?"
"你父亲最后写的那句话——'它需要有人类作为宿主才能存活'——后面被擦掉的半个字,是'我'。"司徒玄的声音很平稳,像在陈述一个早就整理好的事实,"他在写完最后一句话之前就决定不写下去了。他发现自己的身体状况在恶化,他认为自己可能已经接触过那些残留物。但他不想让那个猜测——或者那个'可能性'——出现在纸上。"
陈默坐在那里,感觉那行被擦掉的半个字忽然有了重量。压在纸页底下二十多年,然后借着阳光透过来,落在他的膝盖上。他的父亲当年发现了什么,然后决定不写下来。他选择把一个未完成的句子留在纸上,让读到它的人自己去思考那半个字。
"他当时身体已经开始出问题了,"司徒玄的声音更轻了,"但他一直坚持说,那些症状和实验事故无关。我没有追问。现在想想……也许他是在保护一些人。"
陈默点了点头。窗外的风筝还在飘,那个放风筝的小男孩换了位置,从草坪中央走到了路边。线轴的线放得更长了,蜻蜓在更高处摇摇晃晃地浮着。
三月的阳光从窗口斜斜地照进来,把桌面分成明暗两半。
下午,陈默去了城南的档案馆。
这栋建筑在清华南边的一条安静的街上,灰砖外墙,门脸不大,里面却很深。走廊两侧是成排的金属档案柜,推开某一扇门,能闻到旧纸页和干燥剂的混合气味。
林雨晴在一间阅览室里等着他。她面前摊着好几本打开的文件夹,旁边还放着一个老旧的纸箱,盖子上贴着标签:"远山手稿·非公开部分·待整理(4/8)"。
"来。"她把一把椅子拉到自己旁边,"有一样东西你需要看。"
那是一份手写的备忘录,纸页已经很脆了,边缘有细小的裂纹。陈默戴上手套——林雨晴递过来的白色棉手套——小心地拿起那张纸。备忘录的抬头写着"关于火种计划的补充说明",日期是1998年3月12日,署名林远山。
他读了起来。
内容不长,大约三四百字。林远山在爆炸后五个月写下了这段文字,记录了那件事发生前后的一些细节:
"1997年9月18日,我私下对陈远山说,量子代码在实验过程中,显示出一种'偏好'。它倾向于在特定人员在场时表现出更高的稳定性。具体哪个人,我没有记录,但观察到的现象重复了五次。那之后的一周内,陈远山做了几组额外测试,没有告知团队其他成员。"
"爆炸发生当晚,陈远山找到了我,说他把一部分核心数据装进了一个独立存储设备里。我没有追问具体内容,但他说了一句话:'如果有一天这东西要自己找宿主,我希望它选一个对的人。'当时我以为他在说代码本身。但现在回想,他可能也在说别的。"
"周正雄在爆炸后三天内,主动修改了现场记录的部分内容。我看到了修改痕迹,但没有阻止。他当时神情很可怕,像被什么东西逼到了一个角落。我后来认为,他修改记录的动机,在于避免团队被长期隔离调查,因为他个人承受不起那种拖延。这个判断是否正确,我没有办法确认。"
备忘录最后有一段很短的补充:"陈远山去世前一个月来见过我。他说他把那个存储设备交给了第三方。我问他是谁,他只说了一句——'一个能看到代码背后世界的人'。"
陈默读完最后一行字,把那张纸小心地放回文件夹里,按原来的折痕折好。然后他摘下手套,放在桌角,手在桌面上放着,没有收回去。
林雨晴在旁边安静地等着。过了一会儿,她从抽屉里取出另一个文件夹,翻开。里面是几页复印件,纸色深浅不一,像是从不同的原稿上复制下来的。
"这是去年整理的时候发现的,"她说,"夹在另一批材料里,日期重叠,封面写的分类是'生物监测实验记录'。但里面的内容……和标题不太一样。"
陈默接过来看。开头几页确实是标准的实验记录格式——温度、时间、样本编号——但从第四页开始,内容变了。换成了更接近手记的写法,笔迹也变了,从林远山的工整楷书变成了另一种更匆忙的、笔画更轻的字体。
陈默凑近了看,认出了那笔迹。
"我父亲。"
"对。"林雨晴点头,"他在这批实验记录后面夹了六页手记。可能是怕单独存放被人发现,就塞进了林远山的材料里。我也是整理时才发现纸的厚度不对劲——那几页纸比前面的稍薄,明显是后来加入的。"
陈默翻到第一页手记。日期是1998年2月,父亲写的内容和他笔记本里的记录有重叠,但也有新的细节:
"我确认接触过量子态残留物。1月21日,在清理实验台时,手指碰触了设备面板内侧,当时没有异常感觉。三天后开始出现轻微发热和失眠。我记录了所有现象,但决定不提交正式报告。原因:一旦提交,整个团队都会被隔离审查。司徒已经在承受太多压力,林远山的身体还没恢复。我选择等。"
第二页:"U盘里的数据分为两部分。一部分是量子代码的核心框架,另一部分是爆炸前后所有真实数据的完整备份。前者可能有用,后者必须保存。我无法预测哪部分会被人找到,所以不能只放一样。"
第三页:"我考虑过销毁所有东西。但林远山说过——'有些发现不能就这么消失,哪怕它们有危险。'我相信这个判断。但我也不想让任何人轻易拿到完整的东西。所以U盘设了触发条件:需要'看见代码背后世界'的人才能激活。"
第五页末尾有一行字,写得很小,像是自言自语:"如果将来有人读到这些,说明我做对了一件事。也说明我做错了很多事。但至少——我把选择权留给了后来的人。"
陈默合上那几页手记。纸张在他手里安静地躺着,像握着一捧二十多年前的温度。那些"做对的事"和"做错的事"交织在一起,构成了一个普通人在极限情况下做出的、不完美但真实的决定。没有英雄叙事,只有持续的、沉默的、不被记录的坚持。
"你父亲把这些留在了这里,"林雨晴轻声说,"他知道自己身体状况在恶化。他给自己留了一个窗口——如果有人找到了这些,就能知道事情的全貌。他希望你看到全貌,然后自己选择。"
陈默把那份手记放回文件夹里。他摘下棉手套,叠好放在桌角。窗外的阳光比刚才更斜了一些,在地板上拉出了一道长长的光带,灰尘在光柱里缓慢浮动。
"还有,"林雨晴的声音变轻了一些,"周扬前几天通过他的律师,转交了一份材料到档案馆。他说是'自愿提供的额外说明'。"
陈默抬起头。林雨晴从那摞文件夹最下面抽出一个牛皮纸信封,边缘被反复打开又合上的痕迹很明显。她推过来。
"里面的内容不长。说他在最后那次围捕之前,给蛇头提供了一份假的定位图——把搜索范围往西偏了两公里。他说他本来没想这么做,但看到你在石碾子上坐着等天亮的时候,他就做了。"
陈默打开信封。里面是一张复印过的A4纸,字迹是打印的,末尾有一行手写的签名——周扬,日期是今年的二月中旬。正文里用很平实的语言陈述了那段经过,没有辩解,没有修饰。最后一段写着:"那些数据能发出去,有一部分原因是西边的搜索队到晚了。我不是想补救什么,只是觉得应该说出来。"
陈默读完,把纸折好放回信封。林雨晴在旁边整理材料,把他看过的那些文件按顺序叠放回纸箱里。陈默站起来,走到阅览室的窗前。
窗外是条安静的街道,三月的树枝上开始爆新芽,阳光把墙壁照得温暖发白。一辆自行车慢悠悠地骑过去,车铃偶尔响一声。远处有一棵开花的早樱,粉白色的花瓣在风里轻轻摇晃。
他站在那里看了很久。身后传来档案夹合上时发出的清脆声响,然后是林雨晴把椅子推回桌下的轻响。她走到他旁边,隔着一步的距离,也看着窗外。
"他最后那三个字——'应该说出来',"陈默说,"他这辈子可能第一次主动说出什么东西,不是为了利益,不是为了自保。"
林雨晴没有接话。她站在那里,看着窗外那棵早樱。花瓣正在一片一片地掉,在风里旋转,落在人行道上,落在树根旁湿润的泥土里。春天就这样无声无息地铺展开来,从一树花的开放和落下开始。
"走吧,"她轻声说,"楼下那家咖啡店开了。我请你喝东西。"
他们穿过档案馆安静的走廊,经过那些成排的金属柜和紧闭的门扉。走到门口时,陈默的脚步停了一下。门廊的墙上挂着一块旧铜牌,上面刻着"林远山特藏室"几个字。铜牌下方还有一行小字,字体很小,几乎需要贴近了才能看清:
"真正的发现,不在终点。"
他看了两秒钟,然后推开了门。
午后的阳光在门外等着他们。
街对面那棵樱花树正在风里轻轻抖动,花瓣飞起来,像一场安静的、持续着的雪。
最终章 十年
又一个三月初,北京。
风从西边来,带着解冻泥土和远处河水的气息。清华园里那排老银杏的枝条上又冒了新芽,嫩绿色的,像往年一样蜷在灰褐色的树皮褶皱里。几个穿校服的孩子从树下跑过去,书包在背后一颠一颠的,笑声像铃铛一样散开在空气里。
陈默站在实验室的窗前,手里端着一杯已经凉了半截的茶。窗外正对着那片草坪——有人在放风筝,红色的蜻蜓形状,和很多年前那只差不多。线轴攥在一个小女孩手里,她旁边的年轻男人正蹲着帮她系另一根线。阳光很好,把他们的影子拉得很短。
"陈老师,"身后传来敲门声,"会议还有五分钟。"
陈默转身。门口站着一个二十出头的年轻人,戴着细框眼镜,手里抱着笔记本电脑和一摞打印好的日程表。他站在门框边等着,姿态恭敬但不紧张,眼神里有那种对"前辈"的尊重,也有确认自己不会做错事的专注。
"来了。"陈默把凉茶放在窗台上,拿起搭在椅背上的外套。穿过走廊时,经过几间开着门的办公室,能看见里面有人在低头写东西,有几个人围在白板前讨论什么——白板上画着量子门电路图,不同颜色的笔迹交错覆盖着,像某种复杂的对话记录。有人抬头朝他点了一下头,又低下去继续看屏幕。
"星火科技"的牌子从去年开始挂在楼下了。这栋楼已经不是十年前那栋了,重新翻修过,外墙刷了新漆,窗户换成了双层玻璃。三楼的走廊尽头有一间敞开的公用休息室,靠墙摆着几张旧沙发和一个总是有新茶叶补充的茶柜。此刻里面坐着两个人,其中一个正把膝盖上的笔记本电脑转向另一个人,指着屏幕上的某行代码低声说着什么。
陈默走过休息室门口时,里面的人抬头看了他一眼,点头笑了笑。他点头回应,继续往前走。
会议不长。内容是关于一个面向中学生的开源算法平台升级方案——陈默参与的"连接计划"的项目之一。这个计划几年前开始运作,联合了几所高校和科技公司,把一些适合学生的算法课程和工具免费开放出来。会上讨论的是今年的新模块要加哪些内容,以及是否要在平台首页持续保留那行话。
"保留。"陈默说,"那行字不占地方。"
散会后,他在走廊里遇到了张远航。张远航比十年前更壮了些,戴着副黑框眼镜,头发里掺了零星的白发,手里拎着一个装着保温杯的帆布袋,看起来依然像个刚结束夜班的研究生——只是眼角的纹路比那时候深了。他在走廊里站定,把保温杯换到左手,右手掏出手机看了一眼。
"下午没事?"他问。
"下午去接人。"
"雨晴从哪儿回来?"
"南京。那边的学术会议结束了。下午五点到北京南站。"陈默说。
张远航点了点头,像是确认了什么固定安排。"那晚上我们过去?王奕说想约一顿。"
"行。你们定时间。"
傍晚五点十五分,北京南站出站口。
人潮从闸机口涌出来,拖行李箱的、背双肩包的、牵着孩子的、打电话的。陈默站在靠边的位置,手里没有拿接站牌,只是安静地等着。他穿着件灰色外套,深色长裤,看起来和周围那些来接人的中年男人没什么区别——除了他目光注视的方向比别人专注一些。
林雨晴从人群中走出来,拖着一个深蓝色的登机箱。她穿一件浅米色的风衣,里面是深灰色的针织衫,头发比十年前长了,简单扎在脑后。她看见陈默,脚步没有加快,只是直直地走过来。到他面前时,她松开行李箱拉杆,伸手理了一下他被风吹乱的衣领。
"你头发长了。"她说。
"该剪了。"
"下周吧。"
她站到陈默身侧,两人并排往外走。行李箱轮子在大理石地面上滚动,声音混在周围嘈杂的人声和广播里,听不真切。走到出口时,三月的春风迎面扑来,带着城市傍晚特有的气息——车流的尾气、路边小吃摊的油烟、树木返青时那种微涩的甜。
林雨晴深吸了一口气,抬头看天。天空是浅蓝色的,几缕薄云横在西边,被夕阳的余光染成极淡的粉橙色。
"南京那边的樱花开了。"她说。
"清华的也快开了。"
他们走到停车场。陈默拉开副驾驶的门,林雨晴坐进去,把背包放在脚下。他绕到驾驶座,发动引擎。车平稳地驶出停车场,汇入傍晚的车流。夕阳在前方低低地挂着,把挡风玻璃染成暖橙色。
"晚上张远航他们过来吃饭。"陈默说。
"好。我在车上眯一会儿,到了叫我。"
她靠进座椅里,闭上眼睛。车窗外城市的光影流过,掠过行道树新发的嫩叶,掠过正在亮起的路灯,掠过骑着自行车的学生和遛狗的老人。陈默没有开音乐,车厢里只有空调的风声和轮胎碾过路面的低响。
他偶尔侧头看一眼副驾驶座——她安静地睡着,呼吸均匀,手里还握着手机。屏幕朝上,亮着最后停留的界面:一条发了一半的草稿消息,收件人是陈默,内容只有三个字,还没写完。
"我到家了"。
陈默收回目光,继续开车。
晚饭在家里吃。
说是"家",其实也不是什么特别大的地方。一套普通的三居室,客厅的窗户朝南,能看到清华园西边那一排老槐树。墙上挂着一幅不大的画——是某年冬天林雨晴在旧书店买的,水墨风格,画着几根枯枝和一只停在枝头的鸟。
饭桌上的话题聊得散漫。王奕讲他公司新招的几个年轻人,说现在的小孩比他们那会儿敢问问题多了,张远航分享了实验室最近一个方向的进展,提到数据分析和物理模型结合后产生的几种新可能性,表情比年初松弛。林雨晴在倒茶。茶水从壶嘴流出时,蒸汽在灯光下短暂地升了一下,然后就散了。
"对了,"王奕放下筷子,"去年那个开源平台的统计数据出来了。注册用户数超过十万了。国内国外都有。首页那行字的点击量排在全站第二。"
"第一是什么?"陈默问。
"课程目录。"王奕说,"但差距不大。"
陈默点了点头。这个数字既没有让他吃惊也没有让他觉得意外,他低头用筷子拨了拨碗里最后两口饭。
饭后,张远航和王奕在阳台上站着说话,晚风把他们的交谈声吹得断断续续。陈默在厨房里洗碗,水流冲过碗沿的声音填补了夜晚的安静。林雨晴站在厨房门口,靠着门框,手里端着一杯还冒热气的茶。
"下午那份会议记录,"她说,"我看到了关于'连接计划'的扩展方案。西北那边的几个学校也打算加入。"
"嗯。他们联系过我们了。"
"好事。"她喝了一口茶,热气在她脸前短促地散开,"以前这种资源要跨省流动很麻烦的,现在门槛低了很多。"
陈默把最后一个碗冲净,放进沥水架。他关掉水龙头,厨房里瞬间安静下来,只能听见阳台那边传来的模糊说话声和窗外风吹过树叶的沙沙声。他转过身,靠在灶台边缘,双手撑在台面上。
林雨晴把茶杯换到左手,伸手替他拨了一下垂下来的刘海。她的手指掠过他的额头时带着茶杯的温度。
"十年了。"她说。声音很轻,像是说给自己听的。
陈默低头看着她的手指收回去,重新握住茶杯。窗外,夜色已经铺展开来,清华园的灯火在远处连成一片暖黄色的光带。阳台上传来王奕的笑声,然后是张远航说了句什么,两人一起笑起来。笑声穿过夜晚的空气,抵达厨房门口时,已经只剩下一层极薄的余音了。
"是啊。"陈默说。
他直起身,从灶台边离开,走进客厅,把茶杯放在窗台上。鹅卵石和U盘外壳并排放着,在灯光下泛着各自的光泽。鹅卵石的白色纹路在灯光下像一条静止的河,U盘外壳上的裂痕在多年前就已经不再扩大,此刻只是静静地躺着,像一片已经停止流动的化石河床。
林雨晴走过来,站在他旁边。他们并肩站在窗前,看着夜色里那排老槐树的轮廓。风从半开的窗户涌入,带着泥土和返青草木的气息。远处那棵早樱在路灯的光晕里开着,花瓣在夜风中微微颤动,像无数细小的、白色的低语。
"明年春天,把那棵樱花树旁边的空位种上别的吧。"林雨晴说。
"种什么?"
"不知道。到时候再看。"
远处传来火车的汽笛声,拖长的、低沉的声音,像在夜色中拉出一条看不见的线,从很久以前一直延伸到此刻。院里的槐树枝丫轻轻晃动了一下,叶子和叶片摩擦时发出细碎的声响,在安静中温柔地散开。
风大了些,吹动窗台上那两枚并排放置的物品——一块微润的鹅卵石,一道不再增长的裂纹。裂纹停在时间中途,而石头上的纹路像一条细而持续的河,一直朝前流着。
(全文完)