塔与少女

· · 休闲·娱乐

这里是轻舟已过万重山的外传,假如当初的世界线发生改变,世界会有什么不同吗?

大家多多关注 @EastSnowLotus 呀。

标题取自系列

第一章:假如

方铨铎记得那天所有的细节。

三月三十一日,上午九点十七分。数学课。老师在讲导数的应用,粉笔在黑板上吱吱嘎嘎地响。窗外的阳光透过玻璃照进来,在课桌上投下一片光斑。同桌李浩在打瞌睡,脑袋一点一点的,像一只啄米的鸡。

手机在口袋里震了一下。他没理会。

又震了一下。连续震了五六下。

他的心猛地揪紧——这是洛谷群的消息提示,而且是很重要的消息,才会有人连续@他。

“老师,我出去一下。”他举起手。

数学老师看了他一眼,点了点头。方铨铎是班上的特殊学生,竞赛生的身份让他享有一定的特权——比如在上课的时候突然冲出去看手机。

他冲出教室,靠在走廊的墙上,打开手机。

洛谷群的消息已经刷屏了:

“CCF官网出公告了!”

“北京的成绩出来了!”

“浙江的也出了!”

他的手指在颤抖。他点开CCF官网,页面加载的每一秒都像一个世纪。走廊里很安静,只有远处某个教室传来的读书声。阳光照在手机屏幕上,有点反光,他用手遮了一下。

终于,页面刷新了。

《CCF NOI 2025各省省队入选名单公示》

他深吸一口气,点开“北京”那一栏。

名单从上到下排列,一共十六个人。

第一名:铝の(中国人民大学附属中学)

方铨铎盯着那个名字,愣了几秒。铝の。这个名字他太熟悉了。从高一开始,铝の就是人大附中信息学竞赛队当之无愧的第一人。NOIP全省第一,冬令营全国第三,北大集训营最优营员。所有人都说,他是今年国家队最有力的竞争者之一。

他继续往下看。

第二名,不认识。第三名,不认识。第四名,陈逸飞。第五名,李思睿。第六名……

没有他。

第七名。第八名。第九名。第十名。

没有他。

他的心跳越来越快,手指下滑的速度越来越慢。第十一名。第十二名。第十三名。第十四名。第十五名。第十六名。

没有方铨铎。

他把名单从头到尾看了三遍。每一遍都是同样的结果。十六个名字,每一个他都认识,每一个他都曾经在训练赛中交过手,每一个他都曾经赢过——至少在某一刻。

但没有一个是他自己。

他的手开始发抖。不是因为冷——三月的北京已经暖和了,走廊里甚至有阳光照进来——是因为一种他从未体验过的感觉从胃部升起,像冰冷的液体,慢慢蔓延到胸腔、喉咙、眼眶。

他靠在墙上,闭上眼睛。

差多少分?他脑子里飞快地计算。NOIP占百分之四十,省选第一天占百分之三十,第二天占百分之三十。他第一天的失误,那道数据结构的题,那道他本该拿满分的题——因为那一秒钟的分神,因为看了一眼手机,因为喵爱发来的那条消息——可能丢了十几分。

十几分。在省选里,可能就是省队与落选的区别。

他睁开眼睛,重新看了一遍名单。这一次他看得更仔细了,一个一个名字地看,一个一个分数地看。在名单的最下面,有一行小字:

“第十七名:方铨铎,中国人民大学附属中学,总分487.3分。”

他盯着那行字,然后又看向第十六名。

第十六名:488.1分。

0.8分。

他盯着这个数字,脑子里一片空白。0.8分。一道选择题的分值。一个边界条件的失误。一秒钟的分神。

一条消息。

他想起了喵爱。去年,喵爱差了零点三分。现在,他差了零点八分。

他忽然觉得讽刺。去年听到喵爱的故事时,他想的是“太可惜了,就差那么一点”。现在轮到自己,他想的是——

太痛了。

痛到喘不过气来。

他没有回教室。

他顺着走廊走到尽头,推开楼梯间的门,坐在台阶上。楼梯间很暗,只有安全出口的绿灯发出惨淡的光。楼上有脚步声经过,有人在下楼,脚步声越来越近,然后经过他身边,消失在楼下。那个人没有看他。

他坐在那里,一动不动。

手机又震了。是喵爱的消息。

“你看到了吗?”

他盯着那条消息,没有回复。

又震了:“我进了。第十六名。”

他该为她高兴的。他应该立刻回复“恭喜”,应该笑着说“太好了”。但他做不到。他坐在黑暗的楼梯间里,看着屏幕上那行字,一个字都打不出来。

喵爱又发了一条:“你呢?”

他打了几个字,删掉。又打了几个字,又删掉。他不知道该说什么。说“我没进”?说“我差了零点八分”?说“我完了”?

最后他发出去的是:“没进。”

消息发出去的瞬间,他几乎能感觉到屏幕那头的沉默。过了很久——也许是三十秒,也许是一分钟,也许更长——喵爱回复了:

“方铨铎……”

只有这三个字。后面什么都没有。他不知道她想说什么。也许是“对不起”,也许是“怎么会”,也许是“我很难过”。但不管是什么,他都不想听。

他关掉手机,把脸埋在膝盖里。

楼梯间里很安静。安静得他能听到自己的呼吸声,急促的、不均匀的呼吸声。他能听到自己的心跳,咚咚咚的,像是要从胸腔里跳出来。他能听到楼上水管里水流的声音,咕噜咕噜的,像是某种奇怪的暗语。

他想起了省选第二天。

第三题,后缀自动机。他最不擅长的知识点。题目很长,描述很绕,但核心只有一个:给定一个字符串S和若干个询问,每个询问求S的一个子串在另一个子串中出现的次数。

他盯着屏幕,手指在键盘上敲击。代码一行一行地出现在屏幕上。添加字符,建立状态,更新link,更新len。他进入了一种奇妙的状态,仿佛整个世界都消失了,只剩下他和屏幕上的代码。键盘的敲击声像心跳,稳定而有力。

最后一个字符敲完,他按下编译键。没有错误。输入样例,运行。输出和样例一模一样。输入大样例,运行。输出和大样例一模一样。

那时候他以为自己做到了。他以为那道后缀自动机的题目,这个他最不擅长的知识点,他征服了。他靠在椅背上,长出一口气,看了一眼时间:还剩十五分钟。

但现在他知道了。那道题他拿了满分,但那不够。第一天的失误,那十几分,那道数据结构的题——那道他本该拿满分的题——因为那一秒钟的分神,因为他看了一眼手机,因为喵爱发来的那条消息——

他闭上眼睛。

他恨喵爱吗?不。他恨的是自己。恨自己在最关键的时刻分神,恨自己不够强,恨那零点八分。

他睁开眼睛,看着面前灰白色的墙壁。墙壁上有一些涂鸦,大概是以前的学生留下的。“XX必胜”、“XX喜欢XX”、“考试去死”。他看着这些字,忽然觉得很可笑。那些写下这些字的人,现在在哪里?他们还在乎这些吗?

他拿出手机,打开和喵爱的聊天记录。往上翻,翻到省选前夜。

喵爱:“明天的T3,如果考到字符串,你会用哪种自动机?”

他:“AC自动机够用了。后缀自动机太吃细节,省选不会考那么难。”

他盯着这句话,看了很久。

省选不会考那么难。

他错了。喵爱问他的时候,他就应该警觉的。喵爱从来不会无缘无故地问他问题。她一定是听到了什么风声,或者看到了什么消息。她是在提醒他。而他,自负地说了一句“不会考那么难”。

如果他当时认真想一想,如果他当时去复习一下后缀自动机,如果他在考试前把那套模板再过一遍——

没有如果。什么都没有了。

他在楼梯间里坐了很久。也许是十分钟,也许是一个小时。当他终于站起来的时候,腿已经麻了。他扶着墙,慢慢站起来,膝盖发出咔嚓一声。楼梯间里还是那么暗,安全出口的绿灯还是那么惨淡。

他推开楼梯间的门,走进走廊。

阳光刺得他睁不开眼。他眯着眼睛,看到操场上有人在跑步,有人在打篮球,有人在笑着聊天。一切都和平时一样。太阳照常升起,世界照常运转。没有人知道,在这个上午,他的世界塌了一块。

他走过教学楼的时候,透过窗户看到自己的教室。数学老师还在讲课,粉笔在黑板上写满了公式。李浩已经不瞌睡了,正在认真地记笔记。他的座位空着,桌上摊着数学课本,翻到了导数那一章。

他没有进去。他继续往前走,走出校门。

校门口的值班老师看了他一眼,没有拦他。竞赛生的特权——随时可以进出校门,因为随时可能有比赛、有集训、有各种各样的竞赛活动。老师以为他是去机房,或者去参加什么培训。

他没有去机房。他漫无目的地走,不知道该去哪里。不想回宿舍,不想回家,不想去机房——那个他待了三年、比教室还熟悉的地方。他想找一个没有人认识他的地方,一个可以让他一个人待着的地方。

他沿着马路一直走,走过人大东门,走过海淀黄庄,走过中关村。街上的行人来来往往,有人匆匆赶路,有人悠闲地逛街,有人站在路边打电话。没有人注意到他。他像一个透明的影子,穿过这座城市。

路过中关村创业大街的时候,他看到一群年轻人站在咖啡厅门口,热烈地讨论着什么。他们穿着印有各种科技公司Logo的T恤,手里拿着笔记本电脑,脸上带着兴奋的表情。他想,他们一定是在讨论某个新的项目,某个改变世界的创意。三个月前,他也是这样的。和队友们在机房里讨论算法,争论哪种解法更优,为一个边界条件吵得面红耳赤。那时候他觉得,世界就在他面前,伸手就能够到。

现在他站在路边,看着那些年轻人,觉得自己像一个局外人。一个被世界抛弃的人。

他继续往前走。

下午两点,他走到了未名湖边。

他不知道为什么要来这里。他从来没有来过未名湖——北大对他来说太近了,近到从来没有想过要特意来一次。但今天,他鬼使神差地走到了这里。

他在湖边的长椅上坐下来,看着水面。春天的未名湖很美,柳条刚抽出新芽,嫩绿嫩绿的,在微风里轻轻摇摆。水面倒映着博雅塔的影子,塔尖在水里微微晃动。有游船在湖面上慢慢划过,船上坐着一对情侣,女孩把头靠在男孩的肩膀上,男孩在划船,动作很慢,好像时间在这个下午也变慢了。

他盯着水面,脑子里反复回放省选第二天的场景。

第三题,后缀自动机。他闭上眼睛,能清晰地看到屏幕上的代码。每一行,每一个字符,每一个括号。他写了三个小时,写了三百行代码。他记得每一个变量的命名,每一个函数的定义,每一个循环的边界。

他做对了。他知道自己做对了。那道题,他拿了满分。

但那不够。

第一天的失误像一根刺,扎在他心里。那道数据结构的题——线段树合并,他做过的,做过无数次的。他本应该在一个小时内完成,然后从容地做后面的题。但因为那一秒钟的分神,因为他看了一眼手机,因为喵爱发来的那条消息——“明天的T3,如果考到字符串,你会用哪种自动机?”——他的思路断了,他的节奏乱了,他花了两个小时才做完那道题。

两个小时。多出来的一个小时,他本来可以用在后面的题目上,用来检查,用来优化,用来多拿那零点八分。

零点八分。

他睁开眼睛,看到湖面上自己的倒影。那张脸看起来很陌生。憔悴、疲惫、眼睛里没有光。头发乱糟糟的,校服皱巴巴的,整个人像是被抽干了水分的植物。

这不是他。这不是方铨铎。

下午四点,他打开手机。

屏幕上涌进来几十条消息。洛谷群的消息已经999+了,他懒得点开。私聊消息一条一条地弹出来。

喵爱发了七条。从“你还好吗”到“你在哪”到“方铨铎你回我消息”,最后一条是“我很担心你”。他看着这些消息,能想象喵爱在手机那头焦急的样子。但他没有回复。他不知道该说什么。说“我没事”?那是假的。说“我很难过”?那是废话。说“让我一个人待着”?那是伤害。

陈逸飞发了两条:“听说你没进?太可惜了。”陈逸飞进了省队,第四名。他应该高兴的,但方铨铎不知道该怎么回复。说“恭喜”?他说不出口。说“谢谢”?谢什么?

陈煜轩发了一条:“方铨铎,我听说你的事了。我也是C类,你要不要也试试申请?”C类名额。陈煜轩提过,省选第十七名,C类名额,可以参加NOI。方铨铎盯着这条消息,脑子里转了一下,然后又转回来了。C类名额。编外人员。没有保送资格,没有集训队,什么都没有。就算拿了金牌,也是“编外金牌”。

还有教练的消息:“铨铎,来我办公室一趟。”

他盯着这些消息,一条都没回。

他给妈妈发了一条消息:“妈,我没进省队。”

几乎是秒回:“你在哪?”

“未名湖。”

“你别动,我来接你。”

“不用,我自己回去。”

“方铨铎,你别动。”

他看着那行字,忽然想哭。他已经三年没在妈妈面前哭过了。上一次哭还是初中,因为一次考试没考好。那时候妈妈对他说:“哭什么哭,下次考好就行了。”

但这次不一样。这次没有下次了。省选一年一次,高三不能参加。他的竞赛生涯,在这个三月三十一日的下午,画上了句号。

他坐在长椅上,看着湖面,眼泪无声地流下来。

他没有擦,就那么让眼泪顺着脸颊淌下来,滴在校服上,洇出一小块深色。湖面上起了风,柳条摇得更厉害了,博雅塔的倒影碎了又合,合了又碎。

他想起三年前,第一次走进机房的那个下午。

那时候他刚上高一,对信息学竞赛一无所知。他只知道C++是一种编程语言,只知道“Hello World”是最简单的程序。他坐在机房的最后一排,看着学长们在屏幕上飞快地敲代码,觉得他们像魔法师,用键盘召唤出一个个程序,解决一道道难题。

他想成为他们中的一员。

三年过去了。他成了他们中的一员,而且是最好的一员之一。他的洛谷账号有一万多粉丝,他的代码风格被很多人模仿,他的题解被无数人收藏。他拿过NOIP省一,进过冬令营,在北大集训营里拿过最优营员。

但现在,这一切都不重要了。因为没有进省队。因为零点八分。

在竞赛的世界里,只有两种人:进了省队的和没进省队的。金牌、银牌、铜牌,省一、省二、省三,这些都是过程,都是铺垫。真正的分水岭只有一个:省队。

进了,你就是赢家。没进,你就是输家。不管你拿了多少奖,不管你写了多少代码,不管你熬了多少个夜,只要你没进省队,一切都是零。

这是竞赛的规则,也是竞赛的残酷。

他闭上眼睛,靠在椅背上。阳光透过眼皮,变成一片橙红色。湖面上吹来的风带着水汽,凉凉的,拂过他的脸。

他想,如果时间可以倒流,他会做什么?他会回到省选第一天,把那道数据结构的题再做一遍。不,他会回到更早的时候,回到喵爱发消息的那一刻。他会关掉手机,不去看那条消息,专心做题。

但他回不去。时间是一条单行道,只能向前,不能后退。

妈妈四十分钟后到了。

她开了一个多小时的车,从家里赶到未名湖。方铨铎不知道她是怎么找到这里的——他只说了“未名湖”,没有说具体在哪里。但她找到了。她总是能找到。

她看到方铨铎的时候,什么都没说。她只是走过去,在他旁边坐下,把他的头揽在自己肩膀上。她的手很暖,搭在他的头上,轻轻地拍着,像他小时候那样。

方铨铎没有哭出声。他只是靠在那里,一动不动。他能闻到妈妈身上的味道——洗衣液和护手霜混合的气味,熟悉得让人想哭。

很久以后,妈妈说:“回家吧。”

他点点头。

回家的路上,车里很安静。妈妈没有放音乐,没有说话,只是安静地开车。窗外是北京灰蒙蒙的天,高架桥两边的建筑飞速后退。方铨铎看着窗外,忽然想起一件事。

今天是三月三十一日。去年今天,喵爱知道了自己的结果。差零点三分。她是怎么度过这一天的?她有没有像他一样,一个人坐在某个地方,看着水面,无声地哭?她有没有想过放弃?她有没有恨过这个世界?

他拿出手机,给喵爱发了一条消息:“我没事。恭喜你。”

喵爱秒回:“方铨铎,你别骗我。”

“没骗你。真的没事。”

“你在哪?”

“回家的路上。”

“那就好。”她顿了顿,又发了一条,“方铨铎,你知道吗,去年今天我哭了整整一天。”

他盯着这条消息,沉默了。

“但今年我没有哭。”她继续说,“因为我知道,哭没有用。能做的都已经做了。”

他打字:“我知道。”

“你不知道。”她说,“你现在觉得世界塌了。但明天太阳还会升起来。”

他看着窗外渐渐暗下来的天空,没有回复。

明天太阳还会升起来。但明天,他该做什么?他还能做什么?

到家的时候,爸爸已经在门口等着了。

他站在门廊下,表情很平静。没有愤怒,没有失望,甚至没有同情。他只是站在那里,像一座山,沉默而坚定。

方铨铎下了车,走到他面前。

“爸,我没进。”

爸爸看着他,沉默了几秒。那几秒钟里,方铨铎以为爸爸会说什么。也许会说“没关系”,也许会说“下次努力”,也许会说“你已经很棒了”。但爸爸什么都没说。他只是拍了拍方铨铎的肩膀,手掌很重,落在他肩膀上像一块石头。然后他转身进了屋。

方铨铎站在门口,看着爸爸的背影。那个背影有点驼了——什么时候驼的?他从来没注意过。

晚饭的时候,桌上摆着他最爱吃的红烧排骨和酸菜鱼。他妈妈做了整整一桌子菜,比他过生日的时候还丰盛。红烧排骨是糖色的,上面撒着白芝麻,冒着热气。酸菜鱼的汤是金黄色的,鱼肉片得薄薄的,在汤里微微卷曲。

三个人坐在餐桌前,谁都没说话。

筷子碰碗的声音,咀嚼的声音,汤勺碰锅的声音。这些声音在安静的餐厅里显得格外响亮。

最后还是爸爸先开口了:“接下来有什么打算?”

方铨铎夹了一块排骨,放在碗里,没吃。

“我不知道。”

爸爸点点头:“好好想想。不着急。”

妈妈在旁边轻声说:“先休息几天。这段时间太累了。”

方铨铎点点头,低头扒了一口饭。米饭是甜的,但他尝不出味道。排骨是香的,但他嚼不出香味。他只是在机械地咀嚼、吞咽,像一台机器在完成程序设定的动作。

吃完饭,他回到自己的房间。

房间还是他早上离开时的样子。桌上摊着数学课本,翻到导数那一章。旁边放着一杯已经凉了的水,水面上飘着一小片灰尘。窗帘没有拉开,房间里很暗。

他打开灯,坐在书桌前,盯着课本上的公式。导数,微分,极限。这些曾经让他觉得有趣的知识,现在看起来像一堆毫无意义的符号。

他拿起手机,打开和喵爱的聊天记录。从省选前夜到现在,他们已经聊了几百条。他一条一条地往上翻。

“明天的T3,如果考到字符串,你会用哪种自动机?”

“AC自动机够用了。后缀自动机太吃细节,省选不会考那么难。”

“那你猜猜,他们会考什么?”

“图论。去年考了DP,前年考了数据结构,今年轮到图论了。大概率是最小割或者网络流。”

“那我就信你一回。明天考完请你吃小龙虾。”

“你在杭州,我在北京,怎么请?”

“等我进了省队,去北京集训的时候请。”

“好,等你来。”

他盯着这些对话,眼眶又开始发酸。

等你来。

等不到了。他去不了北京集训了。他甚至不知道,自己还会不会再碰竞赛。

他关掉聊天记录,打开相册。相册里有很多照片——机房的照片、比赛的照片、和队友的合影。有一张是去年冬令营拍的,他和喵爱站在会场的门口,背后是一块巨大的背景板,上面写着“NOI冬令营2024”。喵爱笑得很开心,眼睛弯成月牙形。他站在旁边,表情有点呆,好像还没反应过来相机在拍他。

他盯着这张照片,看了很久。

然后他关掉手机,躺在床上,盯着天花板。

天花板是白色的,上面有一道细小的裂缝,从灯座延伸到墙角。他以前从来没注意过这道裂缝。他躺在床上,盯着那道裂缝,脑子里一片空白。

没有想算法,没有想题目,没有想比赛。什么都没有。只是空白。

他不知道自己在床上躺了多久。也许是十分钟,也许是一个小时。窗外的天色从浅灰变成深灰,最后变成黑色。房间里的光线越来越暗,他没有开灯,就那么在黑暗里躺着。

手机又震了。

他拿起来,是喵爱的消息:

“方铨铎,你睡了吗?”

他想了想,回复:“没有。”

“我也睡不着。”

他没有回复。

“方铨铎,我跟你说个事。”

“什么?”

“去年今天,我把自己关在房间里,哭了整整一天。我觉得天塌了,觉得一切都完了。我妈在外面敲门,我不开。我爸在外面说话,我不听。我就那么一个人待着,像一只受伤的动物,躲在自己的洞穴里。”

他盯着屏幕,能想象那个画面。

“但后来我想明白了一件事。”喵爱继续说,“天没有塌。世界没有完。只是我走的那条路,到那里就断了。但我还可以走别的路。”

他打字:“什么路?”

“高考。”喵爱说,“我回去学文化课了。学了三个月,从年级两百名考到了前五十。虽然最后还是靠竞赛保送的,但那三个月让我明白了一件事——我不是只会写代码。我还可以做很多事。”

方铨铎盯着这段话,很久很久。

“方铨铎,”喵爱最后发了一条,“不管你怎么选,我都在。”

他没有回复。他放下手机,闭上眼睛。

那一夜,他失眠了。

窗外的路灯亮了,橘黄色的光透过窗帘的缝隙照进来,在天花板上投下一道细长的光斑。他盯着那道光线,看着它慢慢地移动,从天花板的一边移到另一边,最后消失不见。

天亮了。

新的一天开始了。但对他来说,新的一天和旧的一天,没有任何区别。

第二天早上,方铨铎醒来的时候,阳光已经照进了房间。

他看了一眼手机,已经十点了。他从来没有睡到这么晚过。过去三年,他每天六点半起床,七点到机房,雷打不动。但今天,他躺在床上,没有起床的欲望。

妈妈敲了敲门:“铨铎,起来吃点东西吧。”

“不饿。”

门外面沉默了一会儿,然后脚步声远去了。

他翻了个身,把脸埋进枕头里。枕头上有洗衣液的味道,淡淡的,像妈妈身上的味道。他闭上眼睛,想再睡一会儿,但睡不着。脑子清醒得像一面镜子,照出所有他不想看到的东西。

省队的名单。第十六名的分数。他名字后面的487.3。还有那个他永远不会忘记的数字——0.8。

他拿起手机,打开洛谷。首页上全是关于省选的帖子。有人在报喜,有人在哭泣,有人在分析题目,有人在预测NOI的走向。他看到了一个帖子:《恭喜北京省队十六位大神!》下面是一长串的回复,有人在祝贺,有人在膜拜,有人在问能不能抱大腿。

他点进去,看到了十六个名字。铝の,陈逸飞,李思睿……一个一个,都是他认识的人。他往下翻评论,看到了自己的名字。

“方铨铎没进?不是吧,他那么强。”

“听说差了零点八分,太可惜了。”

“零点八分……一道选择题的分值。”

“竞赛就是这么残酷。”

他关掉了帖子,又打开了另一个。这一次是浙江的名单。喵爱排在第十六名。下面有很多人在恭喜她,说她是“翻盘王”,说她是“奇迹女孩”。

他盯着那些字,心里有一种说不出的感觉。他为她高兴——真的高兴。她等了一年,终于等到了。但与此同时,他也为自己难过。她翻盘了,他却没有。

他关掉洛谷,打开和教练的对话框。

教练的消息还停留在昨天:“铨铎,来我办公室一趟。”

他没有回复。他不知道该说什么。说“我不去了”?说“我已经放弃了”?还是说“让我一个人待着”?

他想了很久,最后打了一行字:“老师,我想一个人待几天。”

发出去之后,他又觉得这句话很蠢。一个人待几天。待几天之后呢?回去上课?回去刷题?还是回去面对那个0.8分?

教练回复得很快:“好。想好了来找我。”

想好了来找我。

他想好了吗?没有。他甚至不知道自己在想什么。脑子里像一团浆糊,所有的事情搅在一起,分不清哪件是哪件。

他放下手机,盯着天花板。那道裂缝还在那里,从灯座延伸到墙角。他盯着它,忽然觉得它像一条路。一条他走了三年的路,到这里就断了。

断了之后呢?

他不知道。

他只知道,从今天开始,他不再是竞赛生了。没有集训,没有比赛,没有NOI。什么都没有了。

他闭上眼睛,眼泪又流了下来。

这一次,他没有擦。他只是躺在那里,让眼泪顺着脸颊淌下来,滴在枕头上,洇出一小片湿迹。

窗外,阳光正好。三月的北京,春天已经到了。柳树抽芽,桃花盛开,一切都生机勃勃。

但在方铨铎的世界里,春天还没有来。

第二章:杀戮尖塔

方铨铎在床上躺了三天之后,终于起来了。

不是因为他想通了什么,也不是因为妈妈端进来的饭菜终于有了香味。而是因为他的手机没电了,充电器在书桌的抽屉里,而他已经没有力气再去翻抽屉了。他需要充电——不只是手机,也许还有他自己。但他说不清楚这两件事哪个更紧迫。

他坐起来的时候,头晕得厉害。三天没怎么吃东西,身体像一台被拔掉电源的电脑,屏幕上只剩下灰白色的雪花。他扶着床头柜站起来,看到上面摆着三碗已经凉透的粥——小米粥、皮蛋瘦肉粥、白粥。妈妈每天都换一种口味,希望他能多吃一口。但他一口都没动过。每一碗粥的表面都结了一层薄膜,像伤口上凝住的痂。

他拿起充电器,插上手机。屏幕亮起来的时候,消息像决堤的水一样涌进来。洛谷群的消息已经999+了,他懒得点开。私聊消息一条一条地弹出来——

陈逸飞:“铨铎,听说你没进?太突然了。”

陈煜轩:“方铨铎,我申请了C类名额,你要不要也试试?”

教练:“来我办公室一趟。”

还有几条不太熟的同学发来的“听说你考砸了?”、“没事吧?”之类的问候。他一条都没回,甚至懒得看完。这些消息像隔着一层毛玻璃,模糊、遥远,和他无关。

然后他看到了喵爱的消息。

不是一条,是一串。

三月三十一日,上午九点二十三分:“你看到了吗?”

九点二十四分:“我进了。第十六名。”

九点二十五分:“你呢?”

九点二十七分:“方铨铎?”

九点三十分:“你在哪?”

十点零二分:“方铨铎,你回我消息。”

十点四十五分:“我很担心你。”

下午一点十三分:“我刚问了你们学校的人,说你没进。方铨铎,我不知道该说什么。但我在。”

下午三点零七分:“你在未名湖?你妈妈去找你了?那就好。”

下午五点四十一分:“回家了吗?”

晚上八点零二分:“方铨铎,不管你回不回,我都会一直发。”

四月一日,上午七点十五分:“早安。今天北京天气好吗?杭州在下雨。”

上午十一点四十三分:“我上午在训练,做了一道后缀自动机的题。你猜怎么着?我居然做出来了。要是你在就好了,可以帮我看看有没有更优的写法。”

下午四点零九分:“训练结束了。今天状态很差,可能是因为一直在想你。”

晚上九点五十六分:“方铨铎,你睡了吗?我睡不着。”

四月二日,凌晨一点二十三分:“我还是睡不着。一直在想去年的事。去年这时候,我也是这样。一个人坐在房间里,盯着天花板,觉得世界塌了。”

凌晨一点五十八分:“但世界没有塌。方铨铎,世界没有塌。”

上午八点四十分:“我去训练了。今天一定要把那道网络流做出来。你在家好好休息。”

下午两点:“给你看个东西。”——下面是一张照片,拍的是她的笔记本,上面画着一个复杂的网络流模型,旁边写满了推导过程。“怎么样?我画的。是不是很好看?”

下午四点:“好吧,其实不好看。但我尽力了。”

晚上七点:“方铨铎,你今天还是没回我。”

方铨铎盯着这些消息,手指悬在屏幕上方。三天,几十条消息,从焦急到担忧,从担忧到小心翼翼,从小心翼翼到假装没事。她能发的都发了,能说的都说了。每一条消息都像一只手,从屏幕那头伸过来,轻轻地、试探地碰了碰他。而他一直缩在壳里,假装感受不到。

他打字:“我在。”

几乎是秒回:“方铨铎?”

“嗯。”

然后是一段很长的沉默。他能感觉到屏幕那头的喵爱在犹豫,在斟酌,在想该说什么才不会刺痛他。最后她发过来的只有四个字:“你还好吗?”

他盯着这四个字,打了删,删了打。好?不好?好是什么意思?不好又是什么意思?他现在连自己是什么状态都搞不清楚。他只是活着——呼吸着,心跳着,但那不叫“好”。那只是还没有死。

最后他发出去的是:“不知道。”

喵爱没有立刻回复。过了大约一分钟,她发来了一段语音。方铨铎犹豫了一下,点开了。

喵爱的声音从手机里传出来,带着一种他从未听过的温柔:“方铨铎,我跟你说一件事。去年今天,我也这样。觉得自己像个空壳,什么都装不进去,什么都倒不出来。吃什么都像嚼纸,睡也睡不着,就算睡着了也会被噩梦吓醒。梦到自己站在考场上,屏幕上一片空白,一个字都打不出来。”

她的声音顿了一下。

“但是方铨铎,你现在觉得的一切,都会过去的。不是因为我安慰你才这么说——是真的会过去。你不需要现在就‘好起来’,你也不需要假装自己没事。你只需要活着。呼吸,吃饭,睡觉。别的什么都不用做。”

方铨铎听完这段语音,又听了一遍。然后他放下手机,躺回床上。

活着。呼吸,吃饭,睡觉。

他能做到吗?他不知道。但他知道,有人在天亮之前就站在他身边,手里提着一盏灯。那盏灯很暗,暗到只能照亮脚下一小块地方,但足够他迈出下一步了。

他拿起手机,打字:“喵爱。”

“嗯?”

“你不是一个人。”

电话那头安静了很久。然后喵爱发来一个笑脸。没有文字,只有一个笑脸。但那个笑脸比任何话都重。

第四天,方铨铎终于走出了房间。

不是因为他想通了什么,而是因为他实在受不了房间里那股沉闷的气味了。三天没开窗,三天没换气,空气像一潭死水,压在胸口上让人喘不过气来。他推开窗户的时候,一股冷风灌进来,带着四月北京特有的干燥和尘土味。他站在窗前,深吸了一口气,然后又一口,再一口。肺里像被灌进了冰水,凉得发疼,但那种疼痛是清醒的,是活着的证明。

他走出房间的时候,妈妈正在客厅里看电视。看到他出来,她愣了一下,然后站起来,脸上的表情从惊讶变成小心翼翼,又从小心翼翼变成假装若无其事。

“饿了吧?我给你热饭。”

“妈,”他的声音沙哑得像砂纸,“我想出去走走。”

妈妈看着他,嘴唇动了动,似乎想说什么,但最后只是点了点头:“早点回来。”

方铨铎换了一身衣服——三天没换的校服丢进洗衣篮里,随手抓了一件卫衣套上。他走到门口的时候,妈妈叫住了他。

“铨铎。”

他回过头。

妈妈站在客厅中央,手里还拿着遥控器,眼神里有一种他看不懂的东西。不是担忧,不是心疼,而是某种更深沉的情绪。那是一个母亲看着自己的孩子从战场上回来时的眼神——不管他是赢了还是输了,只要他回来了,就够了。

“不管你做什么,妈都支持你。”

方铨铎点了点头,推门出去了。

他漫无目的地走在街上。四月的北京,阳光正好,街边的玉兰花开了,白色的花瓣在风里微微摇晃,像一只只停在枝头的白鸽。但他什么都没看进去。他只是走,一直走,走到腿酸了,走到肺里的空气终于不那么刺人了。他经过人大附中的校门时,脚步顿了一下。校园里有人在操场上跑步,有人在打篮球,有人在教学楼前的花坛边聊天。一切如常。没有人在意少了一个方铨铎。

他继续往前走。

他走进了一家商场。不是想买什么,只是不想在外面待着了。阳光太亮了,亮得让他觉得自己无处可藏。商场里凉快一些,人也少一些。他漫无目的地逛着,经过服装店、奶茶店、数码产品店,什么都没看进去。然后他经过了一家店,橱窗里摆着几台电脑,屏幕上播放着游戏的画面。

他停下来。

屏幕上是一个披着斗篷的人站在高塔前,背后是燃烧的天空。画面的右下角有几个字:《杀戮尖塔II》。

杀戮尖塔。他知道这个游戏。初代是几年前流行的卡牌构筑类Roguelike游戏,在竞赛圈里一度很火——不是因为好玩,而是因为它的核心机制和算法竞赛有某种奇妙的相似:随机性、资源管理、最优解搜索。很多竞赛生都在玩,包括他的一些队友。但他从来没碰过。不是不喜欢,是没时间。竞赛生的世界里没有“游戏”这两个字。每一分钟都要用来刷题、写代码、看题解。玩游戏?那是浪费时间,是堕落的代名词。

但现在,他什么都不是了。

他站在橱窗前,看着屏幕上那个披着斗篷的人一步一步地爬上高塔,和怪物战斗,收集卡牌,构筑套牌。画面很精美,音乐很悠扬,但他注意到的不是这些。他注意到的是——每一次选择都通向不同的结果。走哪条路,拿哪张牌,打哪个怪物。每一个决定都不可逆转,每一次失败都要从头开始。

像极了竞赛。

他走进店里,问了价格,付了钱,拿着游戏回到家。

那天晚上,方铨铎第一次打开了《杀戮尖塔II》。

他坐在书桌前,电脑屏幕的光映在脸上。游戏开始界面是一幅手绘风格的画面——一座高塔耸入云霄,塔身被藤蔓和裂缝覆盖,塔顶隐没在云层里。背景音乐很轻,只有钢琴和偶尔的风声,像是从很远的地方传来的。

他选择了第一个角色:铁甲战士。一个穿着厚重盔甲的战士,手里握着一把大剑。角色的描述只有一句话:“他曾登上塔顶,但他不记得看到了什么。”

他点击“开始游戏”。

游戏很简单。每回合抽五张牌,打出攻击或防御,击败敌人,爬上更高的一层。击败敌人后可以从三张卡牌中选择一张加入牌组,也可以在商店购买卡牌或遗物,或者在休息点回复生命值。每次选择都影响后续的战斗力——选错了,可能在下一层就被击败。击败了,就要从头开始。

方铨铎玩得很慢。不是因为不熟悉游戏机制——规则很简单,十分钟就摸清了。而是因为他发现自己不自觉地开始“计算”。每一张牌的价值,每一个敌人的攻击模式,每一条路线的收益。他在脑子里建模,推演,寻找最优解。

第一局,他在第三层被精英怪击败了。他盯着屏幕上的“GAME OVER”,沉默了一会儿,然后点击了“重新开始”。

第二局,他在第二层因为贪了一张没用的卡牌,导致牌组过厚,抽不到关键牌,在Boss面前毫无还手之力。

第三局,他打到了第四层。他小心翼翼地选择每一张卡牌,计算每一次战斗的伤害和格挡值,在休息点谨慎地决定是回复生命还是升级卡牌。他以为自己能赢了。但Boss在一回合内打出了六十点伤害,他的格挡只有三十二点。

GAME OVER。

他靠在椅背上,盯着屏幕。

三局,三个小时,三次失败。

和竞赛一模一样。你觉得自己算对了,觉得自己够强了,但总有一个边界条件你没考虑到,总有一个隐藏的陷阱你没发现。然后你就输了。从头再来。

他关掉游戏,躺到床上。

手机震了一下。是喵爱。

“方铨铎,你今天出去了?”

“嗯。逛了逛。”

“感觉怎么样?”

“没什么感觉。”他顿了顿,又打了一行字,“买了个游戏。”

喵爱发来一个问号。

“杀戮尖塔II。”

“那个卡牌游戏?我知道。很多竞赛生在玩。”

“嗯。”

“好玩吗?”

他想了想,回复:“一直在输。”

喵爱发来一个笑哭的表情:“那你为什么还玩?”

他盯着这个问题,想了很久。为什么还玩?因为输了就想赢。因为每一次失败都让你觉得自己离胜利更近了一步。因为你知道,只要再调整一下策略,再优化一下选择,就能赢。

就像竞赛。

他没有回复这个问题,而是问:“你今天训练怎么样?”

“还行。做了三道题,都过了。”

“厉害。”

“不厉害。都是你教过我的东西。”

方铨铎看着这行字,心里有一种说不出的感觉。他教过她的东西。后缀自动机,网络流,线段树合并。那些知识点还在他的脑子里,清晰得像昨天才学过。但他再也用不上了。

“方铨铎,”喵爱又发了一条,“你还会回来的,对吧?”

他盯着这行字,没有回复。

接下来的几天,方铨铎每天都会打开《杀戮尖塔II》。

他像研究算法一样研究这个游戏。每一张卡牌的数值,每一个遗物的效果,每一种敌人的攻击模式。他在笔记本上画表格,记录不同套牌的胜率,分析最优的路线选择。他甚至开始写模拟程序——用Python写了一个小脚本,模拟一万次随机抽牌,计算某张卡牌的期望价值。

写到一半的时候,他停下来了。

他在写代码。他在用Python写一个模拟程序。这是他三天来第一次打开编程软件。不是因为竞赛,不是因为作业,只是因为他想算清楚一张卡牌的价值。

他盯着屏幕上的代码,看了很久。代码很简单,只有几十行,但每一行都是他亲手敲出来的。变量命名还是他的习惯——用下划线连接,用缩写表示类型。注释还是他的风格——简洁,直接,不加废话。

他忽然意识到一件事。他以为竞赛结束了,他以为一切都结束了。但代码还在。那些习惯、那些思维、那些刻在脑子里的东西,不会因为一个0.8分就消失。

他写完程序,运行,得到结果。那张卡牌的期望价值是12.7点伤害,比他预估的少了3点。他记在笔记本上,然后继续玩游戏。

那天晚上,他打到了第五层,第一次见到了最终Boss。

Boss是一只巨大的心脏,悬浮在空中,周围环绕着旋转的护盾。它的血条很长,攻击很高,而且每三个回合会释放一次全屏攻击,几乎无法完全格挡。

方铨铎的牌组是一套“力量战”——通过叠加力量属性,让每一次攻击都造成巨额伤害。他在前四层小心翼翼地构筑这套牌组,放弃了所有看起来花哨但不稳定的卡牌,只留下最核心、最可靠的几张。

战斗开始了。

第一回合,他打出了“燃烧”,增加三点力量。Boss攻击,造成十八点伤害。

第二回合,他打出了“双重打击”,造成两次攻击,每次伤害等于基础值加力量。十八点伤害。Boss的血条掉了小小的一截。

第三回合,Boss释放全屏攻击。他打出了“壁垒”,增加二十点格挡,又打出了“巩固”,让格挡值翻倍。四十点格挡。全屏攻击造成了三十五点伤害,他剩了五点格挡。

第四回合,他继续叠加力量。第五回合,他又一次攻击。第六回合,Boss又一次全屏攻击。

如此反复。

这是一场消耗战。每一轮他都在计算——这回合是攻击还是防御?如果攻击,能打掉Boss多少血?如果防御,能撑过下一轮的全屏攻击吗?他的生命值在缓慢地下降,Boss的血条也在缓慢地减少。

第十七回合,Boss的血条只剩最后一截。方铨铎的手牌里有三张攻击牌,总伤害四十七点。Boss还剩四十三点血。

他赢了。

但他没有立刻打出手牌。他盯着屏幕,看着那些卡牌,看着Boss的血条,看着自己的生命值——只剩八点。如果这一轮他打不死Boss,下一轮Boss的全屏攻击一定会杀死他。

他深吸一口气,点击了“结束回合”。

屏幕上弹出一个窗口:“胜利!你登上了塔顶。”

他的角色站在塔顶,披风在风中猎猎作响。云层在脚下翻涌,远处的天空被夕阳染成金红色。画面缓缓拉远,塔顶越来越小,最后变成一个小小的点,消失在广袤的世界里。

方铨铎靠在椅背上,看着那个画面。

他赢了。三天的失败,无数次的GAME OVER,他终于赢了。

手机震了。是喵爱。

“方铨铎,你今天怎么没回我消息?”

他这才注意到,喵爱发了好几条消息,他一条都没回。他一直盯着游戏的屏幕,完全忘记了手机的存在。

“抱歉,在玩游戏。”

“杀戮尖塔II?”

“嗯。刚刚通关了。”

喵爱发来一个惊讶的表情:“这么快?我听说很难的。”

“是挺难的。输了三天。”

“那你为什么还玩?”

又是这个问题。这一次,他想好了答案。

“因为我知道我能赢。”他打字,“只是需要时间。”

喵爱沉默了一会儿。然后她发来一段话:“方铨铎,你知道吗,你刚才说的那句话,和我去年对自己说的一模一样。”

他盯着这段话。

“我去年对自己说,我知道我能赢。只是需要时间。然后我等了一年。今年,我赢了。”

方铨铎握着手机,不知道该说什么。

“方铨铎,”喵爱说,“你也可以的。不是非要走竞赛这条路。你可以做任何事——学文化课,考大学,学别的专业。或者,你也可以像我一样,再等一年。不管你选什么,你都可以赢。”

他闭上眼睛,脑海里闪过无数画面——机房的键盘声,深夜的台灯光,洛谷上绿色的“Accepted”,省选考场上那道后缀自动机的题目,名单上那个0.8分。

他睁开眼睛,看着屏幕上那个站在塔顶的角色。披风在风中猎猎作响,远处的天空一片金红。

他打字:“喵爱。”

“嗯?”

“你知道吗,这个游戏里,每次失败都要从头开始。没有存档,没有重来。输了就是输了。但你每一次都会比上一次走得更远。因为你学到了新的东西。你知道哪些卡牌好用,哪些路线安全,哪些Boss有什么技能。失败不是清零——你带着所有的经验,重新开始。”

喵爱没有回复。他继续说:“我今天赢的那一局,靠的不是运气。是我输了三天积累下来的东西。我知道每一张卡牌的价值,知道每一个怪物的攻击模式,知道什么时候该进攻,什么时候该防守。这些知识不会因为失败就消失。”

他停了一下。

“就像竞赛。那些刷过的题,写过的代码,熬过的夜,不会因为0.8分就消失。它们还在我身体里。不管我以后做什么,它们都在。”

喵爱发来一段语音。他点开。

她的声音有些哽咽:“方铨铎,你说的这些话,我等了一年才想明白。你三天就想明白了。”

他愣了一下:“我没有想明白。我只是在说游戏。”

喵爱笑了,笑得有些哽咽:“对,你只是在说游戏。但你说的每一句话,都是我想对你说的。”

方铨铎握着手机,听着她的笑声。

“方铨铎,”喵爱说,“你知道吗,我刚才在想一件事。”

“什么?”

“你玩这个游戏,输了三天,一直在算卡牌的期望值,写模拟程序,研究最优策略。你明明已经退役了,明明已经不用再碰代码了,但你还是在用竞赛的思维玩游戏。”

方铨铎愣住了。

“方铨铎,”喵爱说,“你不是一个人。”

这句话从屏幕那头传来,像一盏灯,在黑暗里亮了一下。

他没有哭。但他觉得有什么东西在胸口松动了一下。像冰封的河面下,有水开始流动。

那天晚上,方铨铎没有失眠。

他躺在床上,手机放在枕边。屏幕上是喵爱最后发来的一条消息:“明天太阳还会升起来的。”

他盯着这行字,忽然想起一件事。去年,喵爱差0.3分的时候,有没有人对她说这句话?她说没有。去年今天,没有人打电话给她,没有人发消息给她,没有人对她说“你不是一个人”。

所以她决定,如果有一天她认识的人遇到了同样的事,她一定要打电话给他。她一定要告诉他——你不是一个人。

她做到了。

方铨铎闭上眼睛。窗外的路灯透过窗帘的缝隙照进来,在天花板上投下一道细长的光斑。他盯着那道光线,看着它慢慢地移动,像一座灯塔的光扫过海面。

他想起游戏里那个站在塔顶的角色。披风在风中猎猎作响,云层在脚下翻涌。他花了三天,失败了无数次,才走到那里。

他不知道自己的塔顶在哪里。也许在高考考场,也许在某所大学的图书馆,也许在某个他还没有想过的远方。但他知道,他会一步一步地走过去。不是因为他突然想通了什么,而是因为有人在他身边,提着一盏灯。

那盏灯很暗。暗到只能照亮脚下一小块地方。但那一小块地方,足够他迈出下一步了。

他拿起手机,给喵爱发了一条消息:“晚安。”

喵爱秒回:“晚安。”

然后她又发了一条:“方铨铎。”

“嗯?”

“不管你怎么选,我都在。”

他盯着这行字,很久很久。然后他笑了。这是他四天来第一次真正地笑。不是因为开心,而是因为有人在。

窗外的路灯还亮着。远处传来汽车驶过的声音,很轻,像海浪拍打沙滩。方铨铎闭上眼睛,呼吸慢慢变得均匀。

他睡着了。没有噩梦,没有省选的考场,没有0.8分。只有一个模糊的梦——他站在一座高塔上,披风在风中猎猎作响,云层在脚下翻涌。远处,有人也在攀登。他看不清那个人的脸,但他知道,那个人也在往上走。

也许他们会在塔顶相遇。也许不会。但他们在同一座塔里,听着同样的风声,看着同样的天空。

这就够了。

第三章:转变

方铨铎通关《杀戮尖塔II》之后,又玩了三天。

不是因为他有多喜欢这个游戏,而是因为他不知道该做什么。每天早上醒来,第一件事是拿起手机看喵爱的消息。然后起床、吃饭、坐到电脑前、打开Steam,点击《杀戮尖塔II》的图标。选一个角色,爬塔,赢,或者输,再选一个角色,再爬塔,再赢或者再输。循环往复,像一台被设定了程序的机器。

他把四个角色都通关了一遍。铁甲战士、静默猎手、故障机器人、储君。每个角色都有不同的卡牌、不同的机制、不同的策略。他像研究算法一样研究每一个角色,在笔记本上写满了数值分析和策略总结。笔记本的封面上写着“竞赛笔记”四个字——那是他高一的时候买的,用来记录算法模板和错题。现在里面一半是后缀自动机、网络流、线段树合并,一半是卡牌期望值、遗物优先级、Boss攻击模式。

他盯着封面上的“竞赛笔记”,沉默了很久。

然后他把笔记本合上,放到书架的最上层。和那些竞赛教材放在一起。和那本《算法导论》放在一起。和他三年的青春放在一起。

他打开手机,看到喵爱发来的一条消息:“方铨铎,你今天做了什么?”

他想了想,回复:“打游戏。”

“又是杀戮尖塔II?”

“嗯。把第四个角色也通关了。”

喵爱发来一个鼓掌的表情:“厉害。那你接下来做什么?”

方铨铎盯着这个问题,手指悬在屏幕上方。

是啊,接下来做什么?游戏通关了,能玩的东西都玩完了。他不可能一辈子坐在电脑前爬塔。

他打字:“不知道。”

喵爱没有立刻回复。过了几分钟,她发来一段话:“方铨铎,你有没有想过回学校?”

回学校。这三个字像一块石头,扔进他平静的湖面里,激起一圈一圈的涟漪。回学校干什么?上课?考试?高考?那些东西已经离他太远了。他已经三年没有认真上过课了。数学还能跟得上,语文勉强,英语靠老本,物理化学基本等于零。他回去能做什么?坐在教室里当一个透明人,听着那些他听不懂的课,看着那些他做不出的题?

他回复:“我不知道回去能做什么。”

喵爱说:“你什么都不用做。你只需要坐在那里。”

方铨铎愣住了。

“你不需要一下子就变成好学生,”喵爱继续说,“你只需要出现在教室里。听课,听不懂就听不懂。做题,做不出来就做不出来。你只需要坐在那里,让自己习惯‘不是竞赛生’的生活。”

方铨铎看着这段话,忽然想起一件事。喵爱去年也是这样。从竞赛的世界里跌出来,掉进一个完全陌生的地方。她是怎么做的?她坐在教室里,听不懂课,做不出题,但她还是坐在那里。一天一天地坐,一节课一节课地熬。然后有一天,她发现自己听懂了。不是因为她突然变聪明了,而是因为她给了自己时间。

他打字:“我再想想。”

“好。”喵爱说,“不管你怎么选,我都在。”

第二天早上,方铨铎被一阵手机铃声吵醒了。

他迷迷糊糊地摸过手机,看了一眼屏幕——是一个陌生号码。他犹豫了一下,接了。

“喂?”

“方铨铎?”电话那头是一个男人的声音,有点耳熟,但他一时想不起来是谁。

“我是。您是?”

“我是铝の。”

方铨铎愣住了。铝の。人大附中竞赛队第一人,NOIP全省第一,冬令营全国第三,省选北京第一。那个永远坐在机房的角落里,永远戴着耳机,永远第一个完成题目,永远最后一个离开的人。那个在省选前夜对他说“你叫方铨铎对吧?我见过你的代码。省选第二天的第三题,你的方法最简洁”的人。

他从来没有给方铨铎打过电话。事实上,方铨铎甚至不知道他有自己的电话号码。

“你怎么知道我的号码?”方铨铎问。

“我问的教练。”铝の的声音很平静,像在说一件理所当然的事,“你还好吗?”

这个问题,方铨铎已经被问了无数次。每一次他都回答“还好”或者“不知道”。但这一次,对着电话那头的铝の,他说不出这两个字。

“不好。”他说。

铝の沉默了一会儿。然后他说:“我知道。”

方铨铎等着他继续说。但铝の没有继续说。他只是沉默着,像一座山,沉默地立在那里。那种沉默不是尴尬,也不是无话可说,而是一种陪伴。一个同样在竞赛世界里摸爬滚打了三年的人,用沉默告诉你:我懂。

过了很久,铝の说:“我明天要去国家队集训了。”

方铨铎的心被什么东西揪了一下。国家队集训。那是他做梦都想去的地方。但现在,去的人是铝の。

“恭喜。”他说。声音很轻,轻到几乎听不见。

铝の没有说“谢谢”。他只是说:“方铨铎,你的代码很好。比我见过的很多人都好。”

方铨铎愣住了。

“省选第二天的第三题,”铝の继续说,“那道后缀自动机,我用了一百二十五行代码。你用了九十八行。你的方法更简洁。”

方铨铎握着手机,不知道该说什么。

“那零点八分不是你的问题。”铝の说,“是运气。”

方铨铎的喉咙动了一下。

“方铨铎,”铝の说,“你不应该就这样结束。”

然后他挂了电话。

方铨铎坐在床上,握着手机,听着电话那头的忙音。窗外的阳光透过窗帘照进来,在地上投下一片光斑。他盯着那片光斑,脑子里反复回响着铝の的话。

你的代码很好。你不应该就这样结束。

他拿起手机,给喵爱发了一条消息:“铝の刚才给我打电话了。”

喵爱秒回:“什么?铝の?那个铝の?”

“嗯。”

“他说什么了?”

方铨铎想了想,回复:“他说我的代码很好。说我不应该就这样结束。”

喵爱发来一串感叹号,然后说:“方铨铎,你听到了吗?铝の说你代码很好。铝の!那个从来不夸人的铝の!”

方铨铎看着这行字,忽然觉得眼眶有点酸。

“方铨铎,”喵爱说,“你不是一个人。”

那天下午,方铨铎出了门。

他没有去商场,没有去便利店,也没有去未名湖。他去了学校。

站在校门口的时候,他深吸了一口气。四月的北京,风里带着花香和尘土的味道。校园里的迎春花开了,一丛一丛的金黄色,在阳光下闪闪发光。他走进校门,经过操场,经过教学楼,经过花坛。有几个认识他的同学看到他,投来惊讶的目光,但没有人和他说话。他们不知道该说什么——恭喜?安慰?假装什么都没发生?每一种都很尴尬。

他没有去教室,而是去了机房。

推开门的时候,里面空无一人。这个时间点,竞赛队的同学们应该在上课——他们已经回归正常的高中生活了,至少在文化课上,他们和普通学生没有区别。只有方铨铎,连“正常的高中生活”都没有了。

他走到自己的位置前,坐下。电脑还是那台电脑,键盘还是那个键盘。屏幕上还留着省选前他最后一次训练的界面——一道没做完的题目还留在那里,光标在最后一行代码的末尾闪烁。

那是一道后缀自动机的题目。

他盯着那道题,沉默了很久。然后他关掉了它,打开浏览器,登录了洛谷。

首页上全是关于NOI的帖子。有人在讨论今年的题目难度,有人在预测国家队的名单,有人在分享集训的经验。他看到了一条帖子:《北京省队名单公布,人大附中独占六席》。他点进去,看到了铝の的名字,看到了陈逸飞的名字,看到了李思睿的名字。没有方铨铎。

他关掉帖子,打开了另一个。这次是浙江的名单。喵爱的名字排在第十六位。下面有很多评论,有人说她是“翻盘王”,有人说她是“奇迹女孩”,有人说“差一点就没了,太惊险了”。

差一点。又是差一点。喵爱差一点就没进,他差一点就进了。但“差一点”和“进了”之间,隔着一道永远跨不过去的墙。

他关掉洛谷,靠在椅背上,看着窗外。窗外的操场上有人在跑步,有人在打篮球,有人在聊天。阳光照在塑胶跑道上,泛着白光。一切如常。没有人在意机房里有一个人,正在和过去告别。

他坐了很久。久到窗外的光线从刺眼变成柔和,从柔和变成昏黄。操场上的人越来越少,最后一个人都没有了。整个校园安静下来,像一座空城。

他站起来,走到铝の常坐的那个位置前。角落里的位置,靠墙,可以看到整个机房。桌上什么都没有——铝の从来不在桌上放任何东西,不像他,桌上永远堆满了草稿纸和空饮料瓶。

他在那个位置上坐了一下。椅子很硬,不舒服。他不知道铝の为什么喜欢坐在这里。也许是因为这里没有人打扰。也许是因为这里可以看到所有人的屏幕。也许只是因为习惯。

他站起来,走到门口,回头看了一眼机房。

三年前,他第一次推开门的时候,被眼前的景象震撼了。几十个人坐在电脑前,键盘的声音此起彼伏,像某种交响乐。他站在门口,看着这一切,心里有一个声音说:我想成为他们中的一员。

三年后,他站在同一个门口,看着空荡荡的机房,心里有一个声音说:你已经是了。

他关上门,走了。

那天晚上,方铨铎坐在书桌前,打开了《杀戮尖塔II》。

不是想玩,是因为不知道还能做什么。他机械地选择了铁甲战士——这个他第一个通关的角色,开始爬塔。

游戏开始界面的画面是一幅手绘风格的高塔,塔身被藤蔓和裂缝覆盖,塔顶隐没在云层里。他点击“开始游戏”,选择了铁甲战士。角色的描述只有一句话:“他曾登上塔顶,但他不记得看到了什么。”

方铨铎以前没有细想过这句话。但今天,他盯着这行字,忽然觉得有什么东西击中了心脏。

他曾登上塔顶,但他不记得看到了什么。

游戏的故事背景,他在网上看过一些玩家的整理。一千年前,建筑师涅奥与一位同族制造了荒疫,那场灾难让建筑师陷入昏迷。初代的战士——就是他现在选择的这个角色——登上了塔顶,击败了心脏,烧毁了荒疫,这才唤醒了沉睡的建筑师。建筑师醒来后的第一个举动,就是将那个制造荒疫的大恶魔劈成两半。

如今,千年已过,高塔重启。被重创的大恶魔为了复仇,开始控制或驱使各路角色再次攀登高塔,目标直指建筑师。而铁甲战士——当年的英雄——被大恶魔控制,被迫再次登塔,去杀死他曾经拯救过的人。

方铨铎盯着屏幕上的铁甲战士,沉默了很久。

一个英雄,被迫去杀死自己拯救过的人。一个曾经站在塔顶的人,如今被人操控着,走向同一个终点。他不知道铁甲战士在登上塔顶的时候会想什么。也许他什么都想不了——因为被控制的人,没有自己的意志。

他忽然觉得,自己就像那个铁甲战士。被什么东西控制着——不是大恶魔,而是那0.8分,是那个“差一点”,是那个“如果当初”。他每天坐在电脑前,机械地爬塔,机械地战斗,机械地赢或者输。他以为自己是在玩游戏,但其实他只是在逃避。逃避那个空荡荡的机房,逃避那间听不懂课的教室,逃避那个0.8分。

他盯着屏幕,铁甲战士已经爬到了第三层。这一层的场景是“暗港”——一片泥泞的水域地区,与尖塔的下水道相连,各类变异海洋生物与流浪者在这里出没。这是他最喜欢的关卡之一,因为敌人的攻击模式复杂,需要精密的计算。他以前会认真地计算每一张卡牌的期望值,规划每一条路线的收益。但今天,他只是机械地出牌,机械地战斗,脑子里一片空白。

打到Boss面前的时候,他停下来。

Boss是一只巨大的深海怪物,名字叫“灵魂异鱼”。它的血条很长,攻击很高,而且每三个回合会释放一次全屏攻击,几乎无法完全格挡。

方铨铎的牌组是一套“完美打击战”——通过叠加力量属性,让每一次攻击都造成巨额伤害。他在前三层小心翼翼地构筑这套牌组,放弃了所有看起来花哨但不稳定的卡牌,只留下最核心、最可靠的几张。

战斗开始了。

第一回合,他打出了“完美打击”,造成十八点伤害。Boss攻击,造成十五点伤害。

第二回合,他打出了“双重打击”,造成两次攻击,每次伤害等于基础值加力量。二十点伤害。Boss的血条掉了小小的一截。

第三回合,Boss释放全屏攻击。他打出了“壁垒”,增加二十点格挡,又打出了“巩固”,让格挡值翻倍。四十点格挡。全屏攻击造成了三十五点伤害,他剩了五点格挡。

第四回合,他继续叠加力量。第五回合,他又一次攻击。第六回合,Boss又一次全屏攻击。

如此反复。

这是一场消耗战。每一轮他都在计算——这回合是攻击还是防御?如果攻击,能打掉Boss多少血?如果防御,能撑过下一轮的全屏攻击吗?他的生命值在缓慢地下降,Boss的血条也在缓慢地减少。

第十七回合,Boss的血条只剩最后一截。方铨铎的手牌里有三张攻击牌,总伤害四十七点。Boss还剩四十三点血。

他赢了。

但他没有立刻打出手牌。他盯着屏幕,看着那些卡牌,看着Boss的血条,看着自己的生命值——只剩八点。如果这一轮他打不死Boss,下一轮Boss的全屏攻击一定会杀死他。

他深吸一口气,点击了“结束回合”。

屏幕上弹出一个窗口:“胜利!你击败了灵魂异鱼。”

他的铁甲战士站在暗港的尽头,浑身是伤,盔甲上满是裂痕。画面切换到了塔顶——和一千年前一样的塔顶,云层在脚下翻涌,远处的天空被夕阳染成金红色。

然后,一个声音响起。不是文字,是语音——游戏里罕见的语音。一个低沉的声音,像是从很远的地方传来:

“你回来了。”

方铨铎愣住了。他以前通关的时候,从来没有听到过这段语音。他查过游戏的支线剧情,知道铁甲战士有专属的回忆事件——触发后可以深挖角色的过往恩怨,比如他与建筑师、大恶魔的纠葛。但他从来没有触发过。他一直以为那只是传说,是玩家们编造的故事。

但现在,屏幕上出现了一段文字:

“铁甲战士站在塔顶,看着面前的人。那是建筑师——一千年前他拯救过的人。建筑师的脸上没有愤怒,没有恐惧,只有一种深深的疲惫。”

“‘我知道你不是自己来的。’建筑师说,‘他在你脑子里,对吗?那个被你劈成两半的家伙。’”

“铁甲战士没有回答。他举起了剑。”

“‘那就来吧。’建筑师说,‘一千年前你救了我。一千年后你杀了我。很公平。’”

屏幕上出现了一个选项:

【A. 举起剑,完成你的使命】

【B. 放下剑,对抗控制】

方铨铎盯着这两个选项,很久很久。

他知道按照游戏的设定,无论选哪个,铁甲战士都会死。选A,他杀死建筑师,然后大恶魔失去了复仇的目标,也会杀死他。选B,他反抗大恶魔的控制,但被控制的躯体无法承受这种反抗,他会和建筑师一起死去。

无论怎么选,都是死。

但他还是选了。

他选了B。

屏幕上,铁甲战士放下了剑。他的盔甲开始碎裂,裂缝里透出红色的光——那是大恶魔的控制正在反噬他的身体。建筑师看着他,沉默了很久。

“‘为什么?’建筑师问。”

“铁甲战士没有回答。他只是站在塔顶,看着一千年前他看过的风景。云层在脚下翻涌,远处的天空一片金红。”

“‘我不记得了。’他终于开口。声音沙哑,像是很久没有说过话。‘一千年前我看到了什么。我不记得了。但我知道一件事——我不想杀你。’”

“建筑师看着他,眼神里有什么东西碎裂了。然后他笑了。那是一个很疲惫的笑,但也是真实的。”

“‘那就一起死吧。’他说。”

屏幕暗了下去。然后慢慢亮起来,画面是塔顶的远景——两个小小的身影站在塔顶的边缘,并肩而立。风吹过他们的披风,猎猎作响。

然后他们跳了下去。

屏幕上弹出一行字:“铁甲战士的旅程结束了。”

方铨铎靠在椅背上,盯着那行字。

他忽然想起一件事。铁甲战士的角色描述是:“他曾登上塔顶,但他不记得看到了什么。”

他不记得看到了什么。但他记得一件事——他不想杀人。

方铨铎闭上眼睛。他想起自己登上过的那些“塔顶”——NOIP省一,冬令营最优营员,北大集训营的荣誉。他记得那些时刻吗?他记得。他记得每一个细节,每一次掌声,每一张奖状。但那些东西,现在看起来,像一千年前的风景——遥远、模糊、不真实。

但他记得另一件事。他记得喵爱说的“你不是一个人”。他记得铝の说的“你的代码很好”。他记得妈妈做的三碗粥,每一碗都凉了,每一碗都换了新的。

这些他记得。清清楚楚。

他睁开眼睛,看着屏幕上的“铁甲战士的旅程结束了”,沉默了很久。然后他关掉游戏,拿起手机,给喵爱发了一条消息。

“喵爱,我今天在游戏里触发了一个隐藏剧情。”

喵爱回复得很快:“什么剧情?”

“铁甲战士的回忆事件。他站在塔顶,建筑师问他为什么放下剑。他说:‘我不记得一千年前看到了什么。但我知道一件事——我不想杀你。’”

喵爱沉默了一会儿。然后她发来一段话:“方铨铎,你知道吗,你刚才说的那段话,让我想起了一件事。”

“什么?”

“去年,我坐在机房里,看着空荡荡的屏幕,觉得自己什么都忘了。忘了怎么做题,怎么敲代码,怎么思考。但后来我发现,我没有忘。我只是太累了。那些东西还在我脑子里,只是需要时间才能想起来。”

方铨铎看着这段话,很久很久。

然后他打字:“喵爱,我明天想去上课。”

喵爱发来一个笑脸:“去吧。我等你。”

第二天早上,方铨铎起得很早。

他穿好校服,背上书包,走出了房间。妈妈正在厨房里做早饭,看到他全副武装地站在门口,愣了一下。

“你要去学校?”

方铨铎点点头。

妈妈看着他,眼眶红了,但没有哭。她转过身,从锅里盛了一碗粥,放在桌上。

“吃了再走。”

方铨铎坐下来,一口一口地喝粥。小米粥,很稠,很香,里面有红枣和枸杞。他喝得很慢,每一口都细细地品。他已经很久没有好好吃过一顿饭了。

吃完饭,他站起来,走到门口。

“妈,我走了。”

妈妈站在厨房门口,手里还拿着勺子。她点了点头,说:“去吧。”

方铨铎推开门,走了出去。

四月的北京,早晨的空气还很凉。他深吸了一口气,肺里灌满了冷空气,凉得发疼。但他没有缩脖子,而是抬起头,看着天空。天空很蓝,万里无云,几只鸟从头顶飞过,排成人字形,向北方飞去。

他走进校园的时候,早自习的铃声刚好响起。他加快脚步,走向教学楼。推开教室门的时候,所有人都抬起头看着他。

他看到了惊讶的眼神、同情的眼神、好奇的眼神。他假装没看到,走到自己的座位上,坐下。同桌李浩看着他,张了张嘴,想说什么,但最后只是点了点头。

方铨铎也点了点头,然后从书包里拿出课本,翻到老师正在讲的那一章。

他一个字都看不懂。

他盯着课本上的公式,像在看一门外语。导数、微分、极限——这些词他以前都学过,但现在看起来像天书。他握着笔,试图在笔记本上抄写老师的板书,但抄着抄着,笔就停了。他不知道自己抄的是什么,也不知道为什么要抄。

但他没有停下来。他继续抄,一笔一画,认认真真。抄完之后,他看着笔记本上歪歪扭扭的字迹,忽然笑了。

他想起喵爱说的话:“你就是一个普通人,坐在教室里,听不太懂课,做不太出题。但那又怎样?”

是啊,那又怎样?

他翻到下一页,继续抄。

那天晚上,方铨铎给喵爱发了一条消息:“我今天去上课了。”

喵爱秒回:“怎么样?”

“一个字都听不懂。”

喵爱发来一个笑哭的表情:“正常。我第一周也是这样。”

“但我抄了一整天的笔记。”

“然后呢?”

方铨铎想了想,回复:“然后我发现,我的字好丑。”

喵爱发来一连串的“哈哈哈哈哈哈”。

“方铨铎,”她说,“你知道吗,你今天做的这件事,比我去年做的任何事都勇敢。”

方铨铎愣住了。

“我去年回学校的时候,躲在最后一排,恨不得所有人都看不到我。你居然坐在第三排?”

方铨铎笑了:“不是第三排。第五排。但已经很靠前了。”

“那也很厉害了。”喵爱说,“方铨铎,你真的变了很多。”

他变了吗?他不知道。他只知道,今天坐在教室里的时候,他忽然想起了一件事——他曾经也是一个普通的学生。在接触竞赛之前,他也会为数学题发愁,也会背英语单词,也会在语文课上打瞌睡。那时候的他,不知道什么是后缀自动机,不知道什么是网络流,不知道什么是线段树合并。他只是一个普通的高中生,每天上学、放学、做作业、考试。

后来,竞赛改变了他。它给了他一个世界,一个充满代码和算法的世界。在那个世界里,他是王。他可以解决别人解决不了的问题,可以写出别人写不出的代码。他以为自己会一直待在那个世界里。

但世界变了。他出来了。他又成了一个普通的高中生。

但他知道,他和三年前的那个普通高中生不一样了。他见过更大的世界,做过更难的事情,走过更远的路。那些东西不会因为离开了竞赛就消失。它们在他身体里,成为他的一部分。

他拿起手机,给喵爱发了一条消息:“喵爱,谢谢你。”

“谢什么?”

“谢谢你一直在我身边。”

喵爱沉默了一会儿。然后她发来一段语音。方铨铎点开,听到她的声音,轻轻的,带着笑意:

“方铨铎,你知道吗,我去年也说过这句话。对一个帮助过我的人说的。那个人对我说了一句话,我一直记到现在。”

“什么话?”

“‘你不是一个人。’”

方铨铎握着手机,眼眶有点酸。

“方铨铎,”喵爱说,“你现在知道了吧。这句话不是我说给你的。是你自己说给自己的。”

他闭上眼睛,脑海里浮现出游戏里铁甲战士站在塔顶的画面。云层在脚下翻涌,远处的天空一片金红。他不记得自己看到了什么。但他知道,有人在他身边。

窗外的路灯还亮着。远处传来汽车驶过的声音,很轻,像海浪拍打沙滩。方铨铎闭上眼睛,呼吸慢慢变得均匀。

他睡着了。没有噩梦,没有省选的考场,没有0.8分。只有一个模糊的梦——他站在一座高塔上,披风在风中猎猎作响,云层在脚下翻涌。远处,有人也在攀登。他看不清那个人的脸,但他知道,那个人也在往上走。

也许他们会在塔顶相遇。也许不会。但他们在同一座塔里,听着同样的风声,看着同样的天空。

这就够了。

第四章:转变

方铨铎回学校上课的第一周,像一场漫长的溺水。

每天早晨七点到教室,翻开课本,听课,抄笔记,下课,再听课,再抄笔记,放学,回家,做题,做不出来,睡觉。周而复始,像一台出了故障的机器,每一个齿轮都在转动,但整台机器哪儿也去不了。

最痛苦的不是听不懂——听不懂是意料之中的事。最痛苦的是那些“似曾相识”。数学课上,老师讲到导数的几何意义,他觉得耳熟,好像在某个遥远的过去见过这个词。但他想不起来了。那些公式、定理、推导过程,像被一层毛玻璃挡住,模模糊糊,看不清楚。他知道自己曾经会这些东西——高一的时候,他的数学成绩在班里排前十。但那是三年前的事了。三年的竞赛生涯,把那些普通高中生的知识从他脑子里一点一点地挤了出去,取而代之的是后缀自动机、网络流、线段树合并。现在竞赛知识用不上了,高中知识又回不来。他像一个被掏空的容器,什么都装不进去,什么都倒不出来。

英语是他唯一的安慰。三年的竞赛训练,让他读了无数篇英文论文、英文题解、英文文档。他的英语语感还在,阅读理解和完形填空能靠直觉做对一大半。但语法填空和改错就不行了——那些规则他早就忘了,全靠蒙。

物理和化学是最惨的。他连课本都看不懂。那些符号、公式、方程式,像天书一样横在他面前。他试图从最基础的开始补,翻开高一课本,看到“牛顿第二定律”,觉得认识,但仔细一想,什么都说不出来。F=ma,这三个字母他认识,但m是什么?质量。a是什么?加速度。加速度是什么?速度的变化率。速度是什么?位移对时间的导数。导数是什么?他卡住了。

他开始怀疑自己。不是怀疑智商——他知道自己不笨。他怀疑的是,自己是不是已经被竞赛“毁”了。三年的训练,把他的大脑训练成了一种特殊的形状——擅长抽象思维、擅长算法设计、擅长在复杂系统中寻找最优解。但这种形状,和高考需要的那种形状,完全不一样。高考需要的是记忆、熟练、精确。这些恰恰是他现在最缺的东西。

那天晚上,他给喵爱发消息:“我觉得自己像个废物。”

喵爱回复得很快:“怎么了?”

“数学作业十道题,我只做出来三道。物理作业一道都做不出来。化学作业我连题目都看不懂。”

喵爱发来一个拥抱的表情。

“方铨铎,你知道我去年第一周做出来几道数学题吗?”

“几道?”

“两道。十道题只做出来两道。其中一道还是蒙的。”

方铨铎看着这行字,不知道该说什么。

“但你后来怎么样了?”他问。

“后来啊,”喵爱说,“后来我慢慢地、一道一道地做。不会的就看答案,看完答案还不懂的就问老师,问完老师还不懂的就先放着。一天做不出来就两天,两天做不出来就三天。然后有一天,我发现我能做出来一半了。又有一天,我发现我能做出来大部分了。再有一天,我发现数学题也没那么难了。”

方铨铎沉默了。

“方铨铎,”喵爱说,“你才回去一周。你给自己一点时间。”

他打字:“我怕来不及。高考只有一年了。”

喵爱沉默了一会儿。然后她发来一段话:“方铨铎,你还记得你当初学后缀自动机用了多久吗?”

他愣住了。后缀自动机。他最不擅长的知识点。他花了整整两个月才真正掌握。

“两个月。”他回复。

“对。两个月。你用了两个月学会了一个那么难的东西。现在你有一年。一年时间,学那些对你来说简单得多的东西。你觉得你做不到吗?”

方铨铎盯着这段话,很久很久。

然后他笑了。是啊,后缀自动机他都学会了。高中数学,再难能难过后缀自动机吗?

他回复:“你说得对。”

喵爱发来一个笑脸:“当然说得对。我可是过来人。”

第二周,方铨铎换了一种策略。

他不再试图听懂每一节课,也不再试图做完每一道作业题。他给自己定了一个规矩:每天只弄懂一个知识点。不是“学会”,是“弄懂”。弄懂是什么意思?就是能用自己的话把这个知识点讲清楚。讲给谁听?讲给自己听。他在笔记本上写下每一个知识点的“翻译”——用自己的话,把课本上的定义和公式重新说一遍。

这个方法很慢。一天只能弄懂一两个知识点,有时候甚至一个都弄不懂。但这个方法有效。那些模糊的概念开始变得清晰,那些陌生的公式开始变得亲切。他不再觉得自己是个废物了。他只是走得比别人慢,但他还在走。

喵爱每天晚上都会问他:“今天弄懂了什么?”

他会告诉她:“导数的几何意义。”“向量的数量积。”“动能定理。”

喵爱会发来一个鼓掌的表情,然后说:“明天继续。”

有一天,他弄懂了“数列的递推公式”。他在笔记本上写下:“数列就是一堆排好队的数字,每个数字都由前面的数字决定。就像游戏里,你的下一步取决于你现在有什么牌。”他盯着这段话,忽然想起了《杀戮尖塔II》。在游戏里,每一次选择都决定了下一次的可能。你的牌组、遗物、血量,都是“前一项”,而下一场战斗的结果,就是“后一项”。这本质上就是一个动态规划问题。

他忽然笑了。原来竞赛学的东西,并没有消失。它们只是换了一种方式,留在他的思维里。

那天晚上,他给喵爱发消息:“我今天弄懂了数列。”

“然后呢?”

“然后我发现,数列递推和动态规划的状态转移方程是一回事。”

喵爱发来一个惊讶的表情:“你居然能从数列联想到动态规划?”

“嗯。而且我还发现,物理里的匀加速运动,其实就是等差数列。每一秒增加的速度是固定的,所以位移就是一个二次函数——和算法里的时间复杂度分析是一样的。”

喵爱沉默了一会儿。然后她发来一段话:“方铨铎,你知道吗,你说的这些东西,我从来没有想到过。”

方铨铎愣住了。

“我学数列的时候,就是数列。学物理的时候,就是物理。我从来没有把它们和竞赛联系起来。但你不一样。你在用竞赛的思维学文化课。这不是坏事,方铨铎。这是你的优势。”

他的优势。他从来没有这样想过。他一直以为竞赛留下的东西是负担,是让他无法适应普通学习的障碍。但现在他忽然意识到,那些东西可以是武器。

第三周的一个下午,数学课上,老师在黑板上写了一道题。

“这是一道模拟题的最后一道压轴题,”老师说,“概率题,也是全卷最难的一道。去年这道题全市没有人做出来。我给你们十分钟看看,然后我来讲。”

方铨铎抬起头,看向黑板。

题目是这样的:

甲、乙两人进行一项游戏,初始时两人各有一个“能量值”,分别为 aba,b 为正整数)。每轮游戏,随机选择一个人(等概率)作为攻击方,另一个人作为防守方。攻击方的能量值增加 1,防守方的能量值减少 1。当某人的能量值降为 0 时,游戏结束,该人失败。求甲失败的概率。

教室里安静了几秒,然后响起了低低的议论声。

“这什么题啊,能量值还能增加减少?”

“随机选择,这怎么算?”

“我连第一问都不会。”

老师笑了笑:“我说了,这是压轴题。全市没人做出来。你们不用紧张,看看就行。十分钟后我来讲。”

方铨铎没有听。他盯着那道题,脑子里有什么东西被触动了。

这个问题的形式,他见过。不,不是见过——是做过无数次。在竞赛里。随机游走,吸收壁,马尔可夫链。他做过无数道类似的题目。但这不是竞赛——这是高考。高考的概率题不会这么难。或者……会吗?

他重新读了一遍题目。甲失败的概率。设这个概率为 P(a,b)。那么 P(0,b)=1(甲能量为0,已经失败),P(a,0)=0(乙能量为0,甲胜利)。对于 a,b>0,第一轮有两种情况:

所以他得到递推式:

P(a,b) = \frac{1}{2}P(a+1,b-1) + \frac{1}{2}P(a-1,b+1)

这个式子很漂亮,但很难直接解。方铨铎盯着它,脑子里开始搜索竞赛中学过的工具。常微分方程?不适用。特征根法?太麻烦。然后他忽然想起了什么——生成函数。

在竞赛里,他学过用生成函数解这类随机游走问题。设 F(x,y) = \sum_{a,b} P(a,b) x^a y^b,代入递推式,可以得到一个方程。解出生成函数,然后提取系数。

他开始在草稿纸上写。递推式两边乘以 x^a y^b,对 a,b \geq 1 求和。经过一系列变换,他得到了:

F(x,y) = \frac{1}{2}\left(\frac{y}{x} + \frac{x}{y}\right)F(x,y) + \text{边界项}

整理得:

\left(1 - \frac{1}{2}\left(\frac{y}{x} + \frac{x}{y}\right)\right)F(x,y) = \text{边界项}

右边是 P(0,b)P(a,0) 贡献的项。代入 P(0,b)=1P(a,0)=0,他算出了边界项的具体形式。然后他解出了 F(x,y),发现它可以写成:

F(x,y) = \frac{1}{1 - \frac{1}{2}\left(\frac{y}{x} + \frac{x}{y}\right)} \cdot \frac{1}{1-y}

这个表达式看起来很复杂,但他知道怎么提取系数。他在竞赛里做过无数次——生成函数展开,二项式系数,组合数求和。他飞快地在草稿纸上写着,每一步都清晰而精确。

十分钟后,他得到了答案:

P(a,b) = \frac{b}{a+b}

他放下笔,盯着这个结果。那么简单。那么干净。甲失败的概率,就是乙的初始能量除以总能量。和游戏的随机过程无关,只和初始比例有关。

他靠在椅背上,长出了一口气。

老师还在讲台上说:“好了,十分钟到了。这道题很难,我们来看看第一问——”

方铨铎举起了手。

老师愣住了。全班都愣住了。方铨铎——那个刚退役回来、上课连笔记都抄不利索的竞赛生——举手了。

“方铨铎?你有什么问题?”

“老师,”他说,“第三问,我做出来了。”

教室里安静了三秒。然后响起了嗡嗡的议论声。

老师看着他,眼神里带着怀疑:“你做出来了?”

“嗯。”方铨铎站起来,拿着草稿纸走到讲台上。他把草稿纸放在投影仪下面,屏幕上显示出他密密麻麻的推导过程。

“我设甲失败的概率为P(a,b),然后写出递推式……”他开始讲解。他的声音很平静,手很稳,像是在机房里给队友讲题。生成函数,边界条件,系数提取,组合恒等式。每一步都清晰而精确。

教室里安静极了。所有人都盯着屏幕上的推导过程,看着那些他们从未见过的符号和变换。老师站在旁边,表情从怀疑变成惊讶,从惊讶变成震撼。

方铨铎讲完了。他指着最后一行:“所以P(a,b)=b/(a+b)。”

教室里沉默了几秒。然后老师开口了,声音有些干涩:“这个……生成函数的方法,是大学数学的内容。你是从哪里学来的?”

方铨铎愣了一下。他这才意识到,他刚才用的不是高中数学,而是竞赛数学。生成函数、形式幂级数、系数提取——这些是他在竞赛集训中学的,是大学数学系的课程内容。

“竞赛,”他说,“我学竞赛的时候学的。”

老师看着他,沉默了一会儿。然后他笑了,那笑容里有惊讶,有敬佩,还有一丝说不清的东西。

“方铨铎,”他说,“你坐下吧。”

方铨铎走回座位的时候,全班都在看他。他看到了惊讶的眼神、敬佩的眼神、不解的眼神。同桌李浩张大了嘴,小声说:“你也太牛了吧?”

方铨铎没有回答。他坐在座位上,看着黑板上的那道题,心里有一种奇怪的感觉。不是骄傲,不是兴奋,而是一种久违的……踏实。

他以为自己什么都不会了。他以为自己已经废了。但刚才,站在讲台上的那几分钟,他发现自己还是那个方铨铎。那个能在复杂问题中找到最优解的方铨铎。那个能用生成函数秒杀概率题的方铨铎。那个曾经站在竞赛世界顶端的方铨铎。

竞赛没有白费。那些知识还在,那些思维还在,那个他还在。

那天晚上,他给喵爱打电话。

“我今天在数学课上出了一次风头。”他说。

“怎么了?”

他把那道概率题和生成函数的解法说了一遍。喵爱听完,沉默了很久。

“方铨铎,”她说,“你知道我为什么沉默吗?”

“为什么?”

“因为我在哭。”

方铨铎愣住了。

“不是难过的哭,”喵爱的声音确实带着哭腔,但她在笑,“是高兴的哭。你知道吗,你刚才说的那些东西,让我想起了一年前的我。那时候我也以为自己什么都做不了了。但后来有一天,我在物理课上用竞赛学的方法解了一道题,老师表扬了我。那天晚上,我也哭了。”

方铨铎握着手机,不知道该说什么。

“方铨铎,”喵爱说,“你没有废。你只是换了一个战场。那些东西还在你身上,只是需要时间才能被发现。”

他闭上眼睛,脑海里浮现出今天站在讲台上的画面。粉笔在黑板上吱吱嘎嘎地响,阳光从窗户照进来,在草稿纸上投下一片光斑。他讲着生成函数,手在微微发抖,不是因为紧张,是因为激动。他以为那些东西已经离他而去了,但它们没有。它们一直在那里,等着他重新发现。

“喵爱,”他说,“谢谢你。”

“谢什么?”

“谢谢你一直在我身边。”

电话那头安静了一会儿。然后喵爱说:“方铨铎,你知道吗,你今天做的事,比我去年做的任何事都厉害。”

“没有。”

“有。”喵爱的声音很坚定,“你站在讲台上,用竞赛的方法解了一道高考题。你在告诉所有人——包括你自己——你没有白费。那些年,那些刷过的题,写过的代码,熬过的夜,都是有意义的。”

方铨铎的眼眶有点酸。他深吸了一口气,说:“你说得对。”

“当然说得对。”喵爱笑了,“我可是你的军师。”

挂了电话,方铨铎坐在书桌前,看着窗外的夜空。今晚的北京,竟然能看到几颗星星。它们挂在远处,微弱却清晰。

他想起《杀戮尖塔II》里铁甲战士站在塔顶的画面。他不记得一千年前看到了什么,但他记得一件事——他不想放弃。

他打开台灯,翻开数学课本,继续做题。

窗外的星星还在亮着。明天,太阳还会升起来。而他,会继续走下去。

第五章:重逢

五月的一个傍晚,方铨铎收到了一条消息。

“方铨铎,我要来北京了。”

他盯着屏幕,愣了几秒。喵爱的消息像一颗石子,扔进他平静的湖面里,激起一圈一圈的涟漪。

“来北京?干什么?”

“北京省队集训。今年北京和浙江搞了一个交流项目,我们浙江队要来北京集训两周。就住在你们学校附近。”

方铨铎的心跳漏了一拍。北京。集训。住在他们学校附近。这意味着他能见到喵爱了。从去年冬令营到现在,他们已经快半年没见了。半年里,他们隔着屏幕聊了几千条消息,从省选聊到退役,从退役聊到文化课,从文化课聊到《杀戮尖塔II》。他以为自己已经习惯了这种隔着屏幕的陪伴,但看到“我要来北京了”这六个字的时候,他才发现——他不习惯。他从来没有习惯过。

“什么时候来?”他打字,手指微微发抖。

“下周一。待两周。”

他盯着“两周”这两个字,心里有什么东西在翻涌。两周。十四天。他可以在现实中见到喵爱,听到她的声音,看到她的表情,而不是隔着屏幕猜测她在想什么。

“我去接你。”他说。

喵爱发来一个笑脸:“好。”

那天晚上,方铨铎失眠了。他躺在床上,盯着天花板上的那道裂缝,脑子里全是喵爱的影子。冬令营的那个晚上,她站在走廊里问他那道动态规划题,眼睛亮亮的,像两颗星星。省选成绩公布那天,她发来的几十条消息,从焦急到担忧,从担忧到小心翼翼,从小心翼翼到假装没事。他退役后那几天,她每天发消息陪他聊天,说“你不是一个人”。还有那句——“方铨铎,不管你怎么选,我都在。”

他以前从来没有想过,这些意味着什么。他只是觉得,喵爱是他最重要的朋友。在他最黑暗的时候,是她的手把他拉出来的。但“最重要的朋友”这个标签,现在忽然变得不够用了。他想要更多。他想要见到她,想要听到她的声音,想要坐在她身边,想要告诉她——你不是一个人,我也是。

他翻了个身,把脸埋进枕头里。枕头上有洗衣液的味道,淡淡的,让他想起妈妈。但更多的,是喵爱。那个从未真正出现在他生活中、却无处不在的女孩。

他拿起手机,想给喵爱发点什么,但又不知道该说什么。“我想你了”?太直白。“我睡不着”?太普通。“我在想你”?太吓人。他打了几个字,删掉。又打了几个字,又删掉。最后他发出去的是:“北京最近有点冷,多带点衣服。”

喵爱秒回:“好。”

然后她又发了一条:“方铨铎,你是不是也睡不着?”

他愣了一下,回复:“你怎么知道?”

“因为我也睡不着。”

两个人沉默了一会儿。然后喵爱说:“方铨铎,你说我们见面的时候,会不会很尴尬?”

他想了想,回复:“不知道。也许会。”

“那怎么办?”

他盯着这个问题,想了很久。然后他打字:“那就尴尬着吧。反正尴尬一会儿就不尴尬了。”

喵爱发来一个笑哭的表情:“你说得好像很有道理。”

“当然有道理。我可是你的——”

他停住了。你的什么?你的朋友?你的战友?你的……

“我的什么?”喵爱问。

他深吸一口气,打字:“你的军师。”

喵爱发来一串“哈哈哈哈哈哈”,然后说:“晚安,军师。”

“晚安。”

他放下手机,闭上眼睛。窗外的路灯还亮着,橘黄色的光透过窗帘的缝隙照进来,在天花板上投下一道细长的光斑。他盯着那道光线,慢慢地睡着了。

周一的早晨,方铨铎请了半天假。

妈妈问他怎么了,他说要去车站接一个朋友。妈妈看了他一眼,没有多问,只是说:“去吧。早点回来。”

他站在北京南站的出站口,看着电子屏幕上的车次信息。喵爱坐的那趟高铁还有十分钟到站。他站在那里,手心微微出汗。他穿着一件干净的白色T恤和牛仔裤,头发洗了两遍,鞋是新的。他从来没有为见一个人这么紧张过。

出站口的人流一波一波地涌出来。他踮起脚尖,在人群中寻找喵爱的身影。然后他看到了她。

喵爱穿着一件淡蓝色的连衣裙,扎着马尾,背着一个大书包,手里还拖着一个行李箱。她比冬令营的时候瘦了一点,但眼睛还是那么亮。她站在出站口,四处张望,然后看到了他。

两个人对视了一秒。然后喵爱笑了,朝他挥了挥手。

方铨铎走过去。走到她面前的时候,他忽然不知道该说什么了。他准备好的那些话——好久不见、路上辛苦了、北京欢迎你——全都卡在喉咙里,一个字都说不出来。

喵爱看着他,也沉默了。

两个人就那么站着,在人来人往的车站里,像两棵被风吹到一起的树。

然后喵爱笑了:“你说得对,真的好尴尬。”

方铨铎也笑了。那笑容像一把钥匙,打开了什么锁住的东西。他伸出手:“我帮你拿行李。”

喵爱把书包递给他,两个人并肩走出车站。北京五月的阳光很好,暖洋洋地照在身上。街边的槐树开满了白色的花,空气里有一股淡淡的甜香。喵爱深深地吸了一口气,说:“北京的味道。”

方铨铎看着她,忽然觉得心里有什么东西落下来了。那个隔着屏幕的喵爱,和这个站在阳光下的喵爱,终于合成了一个人。她的声音比电话里更好听,她的笑容比照片里更灿烂。她站在那里,像一道光,照亮了他灰蒙蒙的世界。

“走吧,”他说,“我带你去酒店。”

集训队住在学校附近的一家酒店里。方铨铎帮喵爱把行李送到房间,两个人坐在酒店大堂的沙发上,聊了一个下午。

喵爱说了很多浙江队的事。邢苏瞳的讲课风格,陈煜轩的C类名额,集训时的模拟赛,还有那道让她崩溃的后缀自动机。方铨铎听着,偶尔插几句话,更多的时候只是看着她。看着她说话时眼睛亮亮的样子,看着她笑时弯成月牙的眼睛,看着她讲到难题时皱起的眉头。

“你呢?”喵爱问,“文化课怎么样了?”

“还行。”方铨铎说,“数学能跟上了,英语还行,物理化学还在补。”

“听说你在数学课上出了一次风头?”

方铨铎愣了一下:“你怎么知道?”

“陈煜轩告诉我的。他说你们学校有人把这件事发到洛谷上了。”

方铨铎脸红了:“那不是出风头。就是刚好会做。”

喵爱看着他,眼神里有一种他看不懂的东西。不是调侃,不是敬佩,而是更柔软的、更温暖的东西。

“方铨铎,”她说,“你知道吗,我听到这件事的时候,特别高兴。”

“为什么?”

“因为你在变好。”她说,“你在用自己的方式变好。”

方铨铎看着她,不知道该说什么。

“你刚退役的时候,我很担心你。”喵爱的声音低了下来,“我怕你一蹶不振,怕你就这么放弃了。但你没有。你找到了自己的路。你玩游戏,你回去上课,你用生成函数解出了那道题。你在一步一步地往前走。”

她抬起头,看着他。

“方铨铎,你很了不起。”

方铨铎的喉咙动了一下。他想说“没有”,想说“是你帮了我”,想说“谢谢你一直在我身边”。但这些话到了嘴边,都变成了一个字:“嗯。”

喵爱笑了:“就一个字?”

“嗯。”他说,然后也笑了。

那天晚上,他们去了酒店附近的一家小龙虾店。

方铨铎想起省选前夜喵爱说的话——“明天考完请你吃小龙虾。”那时候他说“你在杭州,我在北京,怎么请”,喵爱说“等我进了省队,去北京集训的时候请”。现在,她来了。

“这顿我请。”喵爱说,“欠了你快两个月了。”

方铨铎没有推辞。他们点了一大盆麻辣小龙虾,两瓶北冰洋。喵爱戴着手套,笨手笨脚地剥虾壳,虾汁溅了一脸。方铨铎看着她狼狈的样子,忍不住笑了。

“笑什么!”喵爱瞪了他一眼,“你会剥你来。”

方铨铎接过她手里的虾,三两下就剥好了,放在她碗里。喵爱看着那只白嫩完整的虾仁,愣住了。

“你怎么剥得这么快?”

“熟能生巧。”方铨铎说,“我小时候每年夏天都吃。”

喵爱把虾仁塞进嘴里,含糊不清地说:“不公平。你什么都会。”

方铨铎看着她,心里有一种说不出的感觉。这个女孩,在屏幕那头陪了他两个月,在他最黑暗的时候拉了他一把。现在她坐在他对面,吃着小龙虾,脸上沾着虾汁,笑得像个孩子。他想,他愿意一辈子给她剥虾。

吃完饭,两个人走在回酒店的路上。五月的北京,夜晚还有一点凉,但空气里全是槐花的甜香。路灯把他们的影子拉得很长,交叠在一起,又分开,又交叠。

“方铨铎,”喵爱忽然说,“你有没有想过,如果那0.8分没有丢,你现在会是什么样?”

方铨铎沉默了一会儿。他想过。他当然想过。如果那0.8分没有丢,他就在省队里,和铝の一起训练,和喵爱在NOI上相遇。他不会退役,不会回去学文化课,不会玩《杀戮尖塔II》,不会站在讲台上用生成函数解那道概率题。他会是一个完全不同的方铨铎。

“想过。”他说,“但我不后悔。”

喵爱看着他。

“如果那0.8分没有丢,”他继续说,“我就不会退役,不会回去上课,不会……”他顿了顿,“不会和你变成现在这样。”

喵爱愣住了。

“我们以前也聊天,”方铨铎说,“但那是竞赛生的聊天。讨论题目,讨论算法,讨论比赛。退役之后,我们聊的是别的东西。游戏,文化课,心情。我感觉……”他深吸一口气,“我感觉我更了解你了。”

喵爱没有说话。她低着头,看着脚下的路。

“喵爱,”方铨铎叫她的名字。

她抬起头。

路灯的光照在她脸上,把她的轮廓勾勒得很柔和。她的眼睛很亮,像两颗星星。方铨铎看着那双眼睛,忽然觉得什么都不怕了。

“我有话跟你说。”他说。

喵爱看着他,没有说话。

“这两个月,你一直在帮我。”方铨铎说,“我退役的时候,是你打电话给我的。我失眠的时候,是你陪我聊天的。我回去上课的时候,是你告诉我‘你不是一个人’。你做了这么多,我从来没有好好谢过你。”

“方铨铎——”

“让我说完。”他打断她,“我一直在想,你为什么对我这么好。是因为我们是朋友?是因为你也经历过同样的事?还是因为……”

他停下来,深吸一口气。

“还是因为你也喜欢我?”

喵爱的眼睛瞪大了。她的脸在路灯下泛着淡淡的红晕,嘴唇微微张开,像是想说什么,但又说不出来。

方铨铎看着她,心跳得厉害。他从来没有这么紧张过,比省选还紧张。省选最多决定他能不能进省队,但此刻,他的一句话,可能决定他们之间的关系。

“喵爱,”他说,“我喜欢你。”

夜风吹过来,带着槐花的甜香。路灯的光在风中微微摇晃,两个人的影子交叠在一起,像一幅静止的画。

喵爱看着他,很久很久。然后她笑了。那笑容不是他见过的任何一种——不是冬令营时的礼貌微笑,不是省选后的欣慰笑容,不是聊游戏时的开心大笑。那是一种全新的笑,带着羞涩、带着惊喜、带着某种他终于读懂的东西。

“方铨铎,”她说,“你知道我等这句话等了多久吗?”

方铨铎愣住了。

“从冬令营那个晚上开始。”喵爱说,“你站在走廊里给我讲题,讲完之后不走,就那么站着。我以为你要说什么,结果你什么都没说。我等你说话,等了一年半。”

方铨铎张了张嘴,一个字都说不出来。

“省选前夜我给你发消息,不是真的想问你会考什么。”喵爱的声音有些颤抖,“我只是想找个理由和你说话。结果你真的认真回答了。”

方铨铎想起那条消息——“明天的T3,如果考到字符串,你会用哪种自动机?”他说“AC自动机够用了”。他忽然觉得自己是个傻子。

“你退役之后,”喵爱继续说,“我每天都在想,要不要告诉你。但我怕你觉得我是在同情你,怕你觉得我是因为你可怜才喜欢你的。所以我什么都没说,只是每天发消息,每天陪着你。”

方铨铎的喉咙动了一下。

“方铨铎,”喵爱抬起头,看着他,眼睛里有泪光,但她在笑,“我也喜欢你。”

那一刻,整个世界都安静了。没有车声,没有人声,只有两个人的心跳声,在五月的夜风里交织在一起。

方铨铎伸出手,轻轻地握住了喵爱的手。她的手很小,很暖,指尖微微发抖。他握着她的手,像是握住了全世界。

“喵爱,”他说,“谢谢你。”

“谢什么?”

“谢谢你等我。”

喵爱笑了,眼泪顺着脸颊流下来。她没有擦,就那么笑着哭着,看着他。

“方铨铎,”她说,“你以后还会给我剥虾吗?”

他愣了一下,然后笑了。

“会。剥一辈子。”

那天晚上,他们坐在酒店附近的一个小公园里,聊到了凌晨三点。

喵爱靠在他肩膀上,两个人看着头顶的星空。北京的夜空很少有星星,但今晚例外。有几颗星星挂在远处,微弱却清晰。

“方铨铎,”喵爱说,“你以后打算怎么办?”

“考大学。”他说,“好好学习,考一个好大学。”

“然后呢?”

“然后……”他想了想,“然后学计算机。写代码。也许做游戏,也许做算法,也许做人工智能。反正不会离开这个行当。”

喵爱抬起头看着他:“你还想写代码?”

“嗯。”他说,“我退役了,但我没有放弃。我只是换了一条路。就像游戏里,你走哪条路都能到塔顶,只是路上的风景不一样。”

喵爱笑了:“你什么都用游戏打比方。”

“因为游戏教会了我很多东西。”他说,“比如——失败不是清零。你带着所有的经验,重新开始。”

喵爱看着他,眼神很温柔。

“方铨铎,”她说,“你知道吗,我一直在想,如果我们都进了省队,会怎么样。”

“会怎么样?”

“我们会一起训练,一起比赛,一起吃饭,一起聊天。你会给我讲题,我会给你加油。然后我们会一起去NOI,也许一起拿金牌,也许一起进国家队。听起来很完美。”

方铨铎听着,没有说话。

“但现在这样也很好。”喵爱说,“你回去学文化课,我在集训队训练。你有你的路,我有我的路。但我们的路是平行的,永远在一起。”

方铨铎握紧了她的手。

“喵爱,”他说,“我们会一起走到塔顶的。”

“嗯。”她说,“一起。”

第二天早上,方铨铎送喵爱去集训。站在训练基地的门口,喵爱背着书包,回头看着他。

“方铨铎,”她说,“你回去好好上课。”

“嗯。”

“不会的题就问我。”

“好。”

“别熬夜。”

“知道了。”

她站在那里,阳光照在她脸上,把她的笑容镀上一层金色。方铨铎看着她,忽然想起《杀戮尖塔II》里铁甲战士站在塔顶的画面。他不记得一千年前看到了什么,但他记得此刻——此刻,他站在这里,看着一个女孩,心里满满的都是光。

“喵爱,”他叫她的名字。

“嗯?”

“晚上我给你发消息。”

喵爱笑了,眼睛弯成月牙形:“好。我等你。”

她转身走进训练基地,走了几步,又回过头来,朝他挥了挥手。方铨铎也挥了挥手,看着她消失在门里。

他站在门口,深吸了一口气。五月的北京,空气里全是槐花的甜香。阳光很好,天空很蓝。他转过身,走向学校的方向。

手机震了一下。是喵爱的消息:“方铨铎,我刚才忘了跟你说一句话。”

“什么?”

“你不是一个人。你从来都不是。”

方铨铎握着手机,笑了。他加快脚步,走向教室。今天有数学课,老师要讲导数的应用。他以前觉得导数很难,但现在他知道了——再难的东西,只要一步一步走,总能走到终点。

就像爬塔。就像竞赛。就像他的人生。

他走进校门的时候,早自习的铃声刚好响起。他加快脚步,推开教室的门,走到自己的座位上,坐下。同桌李浩看了他一眼,小声问:“你怎么这么开心?”

方铨铎愣了一下,然后笑了:“有吗?”

“有。你嘴角都快咧到耳朵了。”

方铨铎摸了摸自己的脸,发现确实在笑。他收起笑容,翻开课本,但嘴角还是忍不住往上翘。

他拿出手机,给喵爱发了一条消息:“我到教室了。今天要好好上课。”

喵爱秒回:“加油。”

“你也是。”

“方铨铎。”

“嗯?”

“晚上见。”

他盯着那三个字——晚上见。不是“晚安”,不是“明天聊”,而是“晚上见”。因为他们晚上真的会见到——在屏幕的两端,在消息的往来中,在彼此的世界里。

他回复:“晚上见。”

然后他合上手机,翻开课本,开始听课。

窗外的阳光照进来,在课桌上投下一片光斑。他盯着那片光斑,笑了。

这一次,不是因为他做对了什么题,不是因为他赢了什么比赛。而是因为,他终于知道自己要去哪里了。

第六章:人们

喵爱来北京的第五天,方铨铎收到了一条意想不到的消息。

陈煜轩:“方铨铎,我到北京了。”

他盯着屏幕,愣了一下。陈煜轩?那个江苏的C类名额选手,省选第十七名,在江苏集训时和喵爱成为朋友的陈煜轩?

“你也来集训?”他回复。

“不是。我来参加一个夏令营。北大办的,一周。刚到。”

方铨铎想了想,打字:“那晚上一起吃饭?喵爱也在北京。”

陈煜轩秒回:“好啊!正好想见见你们。”

方铨铎又给喵爱发消息:“陈煜轩来北京了。晚上一起吃饭?”

喵爱的回复是一串感叹号,然后说:“真的?太好了!他在哪?”

“刚到。说是参加北大的夏令营。”

“那晚上一起吃!我去叫上铝の。”

方铨铎愣了一下。铝の。那个给他打电话说“你的代码很好”的铝の。那个说“你不应该就这样结束”的铝の。自从那次电话之后,他们就再也没有联系过。他不知道铝の在国家队集训得怎么样,也不知道他愿不愿意出来吃饭。

“他会来吗?”他问。

喵爱说:“我问问他。他不来也得来。”

方铨铎笑了。喵爱就是这种性格——想做的事,一定要做到。

过了几分钟,喵爱发来消息:“他说好。”

方铨铎看着这两个字,心里有一种奇怪的感觉。四个人——他、喵爱、陈煜轩、铝の。他们四个,在竞赛的世界里各自走着不同的路。他退役了,喵爱在省队,陈煜轩是C类,铝の在国家队。他们本该在NOI上相遇,但现在,因为种种巧合,提前在北京聚齐了。

他给陈煜轩发消息:“晚上七点,学校旁边的小龙虾店。你来过北京吗?”

“没来过。怎么走?”

方铨铎发了定位,然后说:“到了给我打电话,我去接你。”

“好。晚上见。”

晚上六点半,方铨铎站在小龙虾店门口。

这是他和喵爱表白那天来过的那家店。店面不大,藏在一条小巷子里,招牌被槐树遮住了一半,不仔细看很容易错过。但这里的龙虾很新鲜,辣度也刚好,喵爱上次吃得赞不绝口。

他来得早,想先占个位置。这家店生意很好,晚上七点以后基本都要排队。他推门进去,老板认出了他:“小伙子,又来啦?上次那个姑娘呢?”

“一会儿来。”方铨铎说,“今天四个人。还有没有大桌?”

老板看了看店里,指了指靠窗的位置:“那张桌子行吗?能坐六个人。”

“行。”

方铨铎坐下来,给喵爱发消息:“我先到了。占了个位置。”

喵爱回复:“我在路上了。铝の跟我一起。”

方铨铎愣了一下。铝の跟喵爱一起?他们什么时候这么熟了?

“你们一起来的?”

“嗯。他集训的地方离我不远,我顺路去叫的他。”

方铨铎盯着屏幕,脑子里浮现出铝の和喵爱并肩走路的画面。两个人都很高冷,走在一起会不会像两座冰山?

他又给陈煜轩发消息:“你到了吗?”

“快到了。在找路。”

“你在哪?我去接你。”

“不用不用。我看地图就能找到。”

方铨铎笑了。陈煜轩还是那个样子,什么事都想自己搞定。他在江苏集训的时候就是这样——明明可以向别人求助,偏要自己死磕,磕到头破血流才肯开口。

他等了十分钟,手机响了。是陈煜轩的电话。

“方铨铎,我到了。你在哪?”

“你看到槐树了吗?巷子口有一棵大槐树,往里走三十米就到了。”

“看到了看到了。我进来了啊。”

方铨铎站起来,朝门口看去。门被推开,一个高高瘦瘦的男生走进来,穿着一件蓝色卫衣,背着双肩包,脸上带着那种他熟悉的温和笑容。

陈煜轩。

他比照片上看起来瘦了一些,但精神很好。眼睛亮亮的,像是刚做完一道难题的那种亮。方铨铎朝他挥了挥手,陈煜轩看到了,走过来。

“方铨铎!”他伸出手,“终于见到真人了。”

方铨铎握住他的手:“久仰大名。”

两个人对视了一眼,都笑了。虽然从未见过面,但他们在屏幕那头已经聊了两个月。从C类名额聊到文化课,从《杀戮尖塔II》聊到生成函数。他们像是认识很久的朋友,只是第一次见面而已。

“喵爱呢?”陈煜轩坐下来,四处张望。

“还没到。和铝の一起。”

陈煜轩的表情变了一下。那变化很微妙,如果不是方铨铎一直在观察,几乎察觉不到。他的笑容僵了一瞬,然后恢复了正常。

“铝の也来?”他的声音还是那么温和,但方铨铎听出了一丝不一样的东西。

“嗯。喵爱叫的。”

陈煜轩点点头,没有再说什么。他拿起菜单,低头看菜谱,但方铨铎注意到,他的目光并没有在菜谱上移动。

十分钟后,门又被推开了。

方铨铎抬起头,看到喵爱走进来。她今天穿了一件白色的连衣裙,头发散在肩上,脸上带着笑。她的身后跟着一个人——铝の。

铝の穿着一件黑色T恤,牛仔裤,头发有点长,遮住了半边额头。他的表情还是那副老样子——面无表情,看不出在想什么。但方铨铎注意到,他进门的时候,目光扫过整个店,最后落在他身上,停了一秒。然后移开了。

“方铨铎!”喵爱走过来,在他旁边坐下,“陈煜轩!好久不见!”

陈煜轩站起来,笑着和喵爱击了个掌:“好久不见。你变漂亮了。”

喵爱笑了:“你倒是变瘦了。集训很累吧?”

“还行。习惯了。”

铝の站在旁边,没有说话。他看了看座位——方铨铎坐在靠窗的位置,喵爱坐在他旁边,陈煜轩坐在对面。剩下的位置在陈煜轩旁边,靠墙。

他走过去,坐下。

四个人坐在一张桌子上,空气忽然安静了。方铨铎能感觉到那种微妙的张力——喵爱在努力活跃气氛,陈煜轩在假装自然,铝の在沉默,而他自己,不知道该说什么。

“点菜吧。”方铨铎打破沉默,把菜单推到桌子中间,“上次我和喵爱来的时候,点的麻辣和蒜蓉双拼。你们能吃辣吗?”

“能。”陈煜轩说。

铝の点了点头。

“那就来两份麻辣,一份蒜蓉。”方铨铎对老板说,“再来四瓶北冰洋。”

老板应了一声,去准备了。

喵爱看了看陈煜轩,又看了看铝の,笑着说:“你们俩应该认识一下吧?陈煜轩,这是铝の。铝の,这是陈煜轩。”

陈煜轩伸出手:“久仰大名。”

铝の看了看他的手,然后也伸出手,握了一下:“你好。”

两个字的对话。方铨铎和喵爱对视了一眼,都忍住了笑。

“陈煜轩是C类名额,”喵爱说,“省选第十七名。差一点就进省队了。”

陈煜轩笑了笑:“差一点。和方铨铎一样。”

这句话说出来的时候,桌子上的气氛变了一下。方铨铎看了一眼陈煜轩,发现他正看着自己,眼神里有一种说不清楚的东西——不是同情,不是比较,而是一种“我懂你”的默契。

“我们都是差一点的人。”方铨铎说。

铝の忽然开口了:“你们不是差一点。”

三个人都看向他。

“你们是差运气。”铝の说,“不是差实力。”

他的声音很平静,像在陈述一个事实。但这句话的分量,比任何安慰都重。方铨铎看着他,忽然想起那天电话里他说的话——“那零点八分不是你的问题,是运气。”

“谢谢。”方铨铎说。

铝の没有回答。他拿起北冰洋,喝了一口。

小龙虾上来了。两大盆红彤彤的麻辣小龙虾,一盆金黄的蒜蓉小龙虾,冒着热气,香气扑鼻。四个人戴上手袋,开始剥虾。

喵爱还是那个笨手笨脚的样子,虾汁溅了一脸。方铨铎看着她,忍不住笑了,伸手帮她擦掉脸上的虾汁。喵爱的脸红了,小声说:“我自己来。”

对面的陈煜轩看到了这一幕,手里的虾停了一下。然后他低下头,继续剥虾,动作比刚才快了一些。

铝の也在剥虾。他的动作很慢,很仔细,像是在写代码——每一行都要对齐,每一个括号都不能少。他剥出来的虾仁完整得像艺术品,摆在碗里,一个挨一个,整整齐齐。

喵爱看着铝の的碗,又看了看自己碗里那些碎成渣的虾仁,叹了口气:“不公平。你们三个都会剥虾,就我不会。”

陈煜轩笑了:“我也不会。你看我剥的。”他举起手里的虾——虾壳碎了一半,虾肉还粘在壳上,看起来惨不忍睹。

喵爱笑了:“那咱俩是一伙的。”

方铨铎把自己剥好的虾仁放进喵爱碗里:“吃吧。”

喵爱看着碗里的虾仁,脸又红了。她小声说:“谢谢。”

陈煜轩低头剥虾,没有抬头。他的手在微微发抖,但他控制住了。他把自己剥好的虾仁放进自己碗里,一个都没吃。

铝の忽然把自己碗里的虾仁推到桌子中间:“都吃吧。”

四个人都愣住了。铝の——那个从来不和人分享任何东西的铝の——把自己的虾仁推出来让大家吃。

喵爱第一个反应过来,夹了一个:“谢谢智清!”

方铨铎也夹了一个。陈煜轩犹豫了一下,也夹了一个。

铝の没有说话,继续剥虾。

那一刻,方铨铎忽然觉得,这张桌子上的四个人,其实是一样的。他们都在竞赛的世界里拼过命,都尝过失败的滋味,都在寻找属于自己的路。铝の看起来走得最远——国家队、IOI、金牌。但他也有自己的苦——凌晨四点起床,三年如一日,没有人理解,没有人陪伴。他剥的虾再完整,也只是一个人吃。

现在,他愿意分给别人了。

吃到一半的时候,陈煜轩忽然放下筷子,看着方铨铎。

“方铨铎,我听说你在数学课上用生成函数解了一道概率题?”

方铨铎愣了一下:“你怎么知道的?”

“洛谷上有人发了。”陈煜轩笑了,“现在整个竞赛圈都知道了。退役的竞赛生用生成函数秒杀高考压轴题,这个故事太励志了。”

方铨铎脸红了:“不是什么大事。就是刚好会做。”

“刚好会做?”陈煜轩摇摇头,“生成函数是大学数学的内容。你能想到用这个工具,说明你的思维还在。你没有因为退役就丢掉那些东西。”

方铨铎沉默了。

“方铨铎,”陈煜轩看着他,眼神很认真,“你知道吗,你退役的时候,我特别难过。”

方铨铎愣住了。

“不是因为你退役了难过,”陈煜轩继续说,“是因为我觉得,竞赛圈又少了一个好人。你的代码写得那么好,你的题解写得那么清楚,你帮助过那么多人。你不应该就这样结束。”

方铨铎的喉咙动了一下。

“但后来我看到你在数学课上做的事,”陈煜轩笑了,“我忽然觉得,你没有结束。你只是换了一个战场。在竞赛战场上,你是高手。在高考战场上,你还是高手。你只是换了一个地方发光。”

喵爱在旁边用力点头:“说得对。”

铝の没有说话,但他看着方铨铎,点了点头。

方铨铎看着面前的三个人,忽然觉得眼眶有点酸。他想起退役那几天,他躺在床上,觉得自己一无是处。他以为自己被世界抛弃了,以为那些年的努力都白费了。但现在,他知道了——不是的。那些东西还在。它们在他身上,在他脑子里,在他每一次思考问题的方式里。没有人能拿走它们。

“谢谢你们。”他说。

“谢什么?”陈煜轩问。

“谢谢你们让我知道,我没有白费。”

喵爱握住了他的手。陈煜轩举起北冰洋的瓶子:“来,干一个。”

四个人举起瓶子,碰在一起。玻璃碰撞的声音清脆悦耳,在小小的店里回荡。

吃完饭,四个人走出小龙虾店。五月的北京,夜晚还有一点凉,但空气里全是槐花的甜香。路灯把他们的影子拉得很长,交叠在一起,又分开,又交叠。

“你们住哪?”方铨铎问陈煜轩。

“北大那边。坐地铁四号线。”

“我送你。”

“不用不用。”陈煜轩摆摆手,“我自己能找到。你送喵爱回去吧。”

方铨铎看了看喵爱,又看了看陈煜轩,犹豫了一下。

陈煜轩笑了:“别磨叽了。我又不是小孩子。”

他朝方铨铎伸出手。方铨铎握住他的手,感觉到他的手很暖,很有力。

“方铨铎,”陈煜轩说,“下次见面,可能就是NOI了。”

“嗯。到时候我给你加油。”

陈煜轩笑了:“那我可记住了。”

他松开手,转身要走。走了几步,又回过头来,看着喵爱。

“喵爱,”他说,“好好训练。NOI上见。”

喵爱点点头:“你也是。”

陈煜轩看了她一眼,然后转身走了。路灯把他的影子拉得很长,他的背影在槐花树下越来越小,最后消失在巷子口。

方铨铎看着他的背影,忽然想起一件事。陈煜轩喜欢喵爱。他在江苏集训的时候就喜欢她了。他从来没有说过,但方铨铎看得出来。今天吃饭的时候,他一直低着头剥虾,一直不看喵爱的方向。他在克制自己。

方铨铎忽然觉得,自己应该对陈煜轩说点什么。但说什么呢?说“对不起”?他没有做错任何事。说“谢谢你”?听起来像施舍。说“我会好好对她”?太自大了。

他什么都没有说。他只是站在那里,看着陈煜轩消失在夜色里。

铝の也走了。他没有让人送,只是说了句“我走了”,就转身离开了。他的背影很直,步伐很稳,像一台设定好程序的机器,沿着最优路径走向目的地。

方铨铎和喵爱走在回酒店的路上。两个人都没有说话,但那种沉默不是尴尬,而是一种默契——他们都知道,有些话不需要说出口。

走到酒店门口的时候,喵爱停下来。

“方铨铎,”她说,“你觉得陈煜轩……还好吗?”

方铨铎沉默了一会儿。

“他会好的。”他说,“他是那种人——不管遇到什么事,都能自己扛过去。”

喵爱看着他,眼神里有一种他看不懂的东西。

“方铨铎,”她说,“你知道吗,陈煜轩从来没有跟我说过喜欢你。”

方铨铎愣住了。

“但他看你的眼神,”喵爱说,“和看别人的不一样。”

方铨铎不知道该说什么。

“他喜欢你。”喵爱说,“从江苏集训的时候就喜欢了。但他从来没有说过。他只是在旁边看着,陪着你,帮你出主意。就像今天——他明明不开心,但他还是来了。他还是笑着和你聊天,还是帮你剥虾,还是说‘你的代码很好’。”

方铨铎的喉咙动了一下。

“方铨铎,”喵爱说,“你真的很幸运。有那么多人喜欢你。”

她看着他,眼睛在路灯下闪闪发光。

“我也很幸运。”她说,“因为我喜欢的人,也喜欢我。”

方铨铎伸出手,握住了她的手。她的手很暖,指尖微微发抖。

“喵爱,”他说,“我会好好珍惜的。”

喵爱笑了:“我知道。”

她踮起脚尖,在他脸颊上轻轻吻了一下。很快,轻得像一片叶子落在水面上。然后她转身跑进了酒店,没有回头。

方铨铎站在门口,摸着自己的脸,愣了很久。路灯的光照在他身上,把影子拉得很长。槐花的香气在夜风里飘荡,甜甜的,暖暖的。

他拿出手机,给陈煜轩发了一条消息:“到家了吗?”

过了几分钟,陈煜轩回复:“到了。今天很开心。谢谢。”

方铨铎看着这行字,打了很久的字,删了很久的字。最后他发出去的只有四个字:“下次再聚。”

陈煜轩回复:“好。”

然后又发了一条:“方铨铎,你要好好对她。”

方铨铎盯着这行字,眼眶有点酸。他回复:“我知道。”

陈煜轩发来一个笑脸。然后他说:“晚安。”

“晚安。”

方铨铎站在酒店门口,看着手机屏幕上的聊天记录。他想起陈煜轩在江苏集训时给喵爱讲题的样子,想起他为了C类名额拼尽全力的样子,想起他今天低着头剥虾的样子。

陈煜轩是一个好人。一个很好很好的人。他不应该一个人走夜路,不应该把喜欢的人让给别人,不应该笑着说“下次再聚”然后转身消失在巷子里。

但他就是这样的人。他永远不会让别人为难,永远不会把自己的痛苦加在别人身上。他只会笑着说“没关系”,然后一个人扛下所有。

方铨铎深吸一口气,转身走向地铁站。五月的北京,夜晚的风很温柔。他走在槐花树下,花瓣飘落在肩膀上,像一场无声的雨。

他拿出手机,给喵爱发了一条消息:“晚安。”

喵爱秒回:“晚安。明天见。”

“明天见。”

他收起手机,加快了脚步。明天还有很多事要做——上课,做题,补物理,背化学。但他不怕了。因为有人在他身边,有人在等他,有人在背后默默地祝福他。

他想起《杀戮尖塔II》里铁甲战士站在塔顶的画面。他不记得一千年前看到了什么,但他知道一件事——他不想一个人走。

现在,他不是一个人了。

第七章:日常

方铨铎从来没有参加过运动会。

高一的时候,他在机房刷题。高二的时候,他还在机房刷题。高三——如果他还在竞赛队的话,他大概还会在机房刷题。竞赛生的世界里没有“运动会”这三个字。操场是别人的战场,他的战场在屏幕前,在键盘上,在那些看不见摸不着的算法里。

但今年不一样了。他退役了,回到了班级,回到了一个普通高中生的生活里。班主任在班会课上宣布运动会报名的时候,他第一次抬起头,认真地看着黑板上的项目列表。

“男子1000米,谁报?”体育委员站在讲台上,拿着报名表,目光扫过全班。

教室里安静了三秒。1000米是没有人愿意报的项目——又累又没有观赏性,跑完还腿疼好几天。

方铨铎举起了手。

全班都愣住了。同桌李浩张大了嘴,小声说:“你疯了?”

方铨铎没有回答。他只是觉得,他应该做点什么。三年了,他从来没有为这个班级做过任何事。竞赛生是班级里的透明人——上课来,下课走,不参加班会,不参加活动,甚至连值日都很少做。同学们对他客气,但不是亲近;尊敬,但不是喜欢。他是“那个搞竞赛的”,不是“我们班的方铨铎”。

现在,他想成为“我们班的方铨铎”。

体育委员看着他,犹豫了一下:“方铨铎,你确定?1000米很累的。”

“确定。”

“好。”体育委员在报名表上写下他的名字,然后继续问,“还有谁?”

最后,1000米项目报了三个人:方铨铎,李浩,还有一个叫张远的男生。张远是班上的体育委员,短跑很快,但长跑也不是强项。三个人凑在一起,像一支临时拼凑的杂牌军。

运动会前的两周,方铨铎开始训练。

每天下午放学后,他换上运动鞋,去操场跑圈。第一天跑了400米就喘不上气了——三年的机房生活,把他的肺活量消耗得所剩无几。他扶着膝盖,弯着腰,大口大口地喘气,感觉自己像一个生锈的机器,每一个零件都在吱嘎作响。

第二天,他跑了600米。第三天,800米。第四天,他咬牙跑完了1000米,用时四分五十秒。离及格线还差很远,但他跑完了。他躺在操场的草地上,看着天空,大口喘气。夕阳把天边染成金红色,几朵云彩镶着金边,像游戏里的史诗级奖励。

手机震了一下。是喵爱的消息:“在干嘛?”

“刚跑完1000米。累死了。”

喵爱发来一个惊讶的表情:“你什么时候开始跑步了?”

“运动会报了1000米。”

“你?1000米?”喵爱发来一串问号,“你不是最讨厌运动吗?”

方铨铎想了想,回复:“我想试试。”

喵爱沉默了一会儿,然后说:“方铨铎,你真的变了。”

他变了么?他不知道。他只知道,躺在操场草地上看天空的感觉,和坐在机房里看屏幕的感觉,完全不一样。机房里的天空是假的——窗户永远关着,窗帘永远拉着,阳光永远照不进来。但操场上的天空是真的,那么大,那么蓝,那么远。风从耳边吹过,带着青草和泥土的味道,带着同学们的欢笑声和呐喊声。他躺在地上,能感觉到草尖扎着脖子,痒痒的,但不想动。

李浩跑过来,一屁股坐在他旁边,也喘得厉害:“你每天都跑?”

“嗯。”

“你疯了。1000米而已,至于吗?”

方铨铎没有回答。他不知道自己为什么要这么认真。也许是因为他不想在跑道上丢脸,也许是因为他想证明自己也能做好竞赛之外的事,也许只是因为——跑步的时候,脑子是空的。没有算法,没有公式,没有那0.8分。只有呼吸,只有脚步,只有风。

那种感觉很好。

运动会那天,天气很好。

五月底的北京,不冷不热,阳光温暖但不刺眼。操场上插满了彩旗,广播里放着运动员进行曲,同学们穿着统一的校服,坐在看台上,叽叽喳喳地聊天。方铨铎坐在班级的方阵里,穿着一身运动服,号码布别在胸前——314号。他低头看了看那个号码,忽然觉得有点紧张。比省选还紧张。

省选的时候,他面对的是屏幕,是代码,是他最熟悉的世界。但现在,他面对的是跑道,是观众,是一个他完全陌生的战场。

李浩拍了拍他的肩膀:“别紧张。跑不完也没事,反正倒数第一也是第一。”

方铨铎笑了:“你这是在安慰我吗?”

“当然。我安慰人很厉害的。”

张远从旁边探过头来:“方铨铎,你训练的时候最快跑了多少?”

“四分二十秒。”

张远点点头:“那还行。我最快四分十秒。李浩呢?”

李浩挠了挠头:“四分五十秒。”

“那你垫底。”张远说。

“谢谢你的鼓励。”李浩翻了个白眼。

广播里传来声音:“男子1000米决赛,请运动员到检录处检录。”

三个人站起来,走向检录处。方铨铎走在最后面,心跳得厉害。他深吸一口气,试图让自己平静下来。他想起省选那天,他也是这样深吸一口气,然后走进考场。那时候他以为自己准备好了,但一道后缀自动机让他慌了神。现在,他面对的不是后缀自动机,而是一条400米的跑道,要跑两圈半。他不知道自己在害怕什么——是怕输?是怕丢脸?还是怕自己连跑都跑不完?

他走到起跑线前,蹲下来,双手撑地。左右两边是其他班的选手,一个个都比他壮,腿都比他长。他忽然觉得自己像一只混进狼群的兔子。

发令枪响了。

前200米,方铨铎跑在中间位置。

他的节奏控制得很好——这是他在训练中反复练习的。不快不慢,呼吸均匀,步伐稳定。但到了400米的时候,他的腿开始发酸,呼吸开始急促。旁边的选手一个一个地超过他,他掉到了倒数第三。

看台上传来加油声。他听不清是谁在喊,但他知道是班上的同学。那些他叫不出名字的同学,那些他从来没有一起吃过饭的同学,那些他以为和他无关的人,此刻正在为他加油。

他咬了咬牙,加快了步伐。

600米。他的肺像要炸开一样,每一次呼吸都像在吞刀片。他的腿像灌了铅,每一步都要用尽全力。他掉到了倒数第二。只剩下李浩在他后面。

800米。最后200米。他的眼前开始发黑,耳边只有自己的心跳声和呼吸声。他想停下来。他太想停下来了。他的脑子里有一个声音在说:“算了,反正也拿不到名次。走完也行。没有人会怪你。”

但他没有停。他想起喵爱说的话——“你不是一个人。”他想起陈煜轩说的话——“你只是换了一个战场。”他想起铝の说的话——“你不应该就这样结束。”

他咬着牙,迈开腿,开始冲刺。

最后100米,他超过了两个人。最后50米,他又超过了一个人。冲过终点线的时候,他几乎摔倒在地。他弯着腰,双手撑着膝盖,大口大口地喘气。眼前一片模糊,耳朵里嗡嗡作响。

李浩跑过来,扶住他:“四分十五秒!你破了个人纪录!”

方铨铎抬起头,看到计时牌上的数字——4分15秒。比训练最快还快了五秒。他笑了,笑得喘不上气。

张远也跑过来,拍了拍他的肩膀:“第七名。不错!”

十二个人跑,第七名。不是倒数第一,不是倒数第二,是第七名。方铨铎靠在李浩身上,看着操场上的人群,忽然觉得眼眶有点酸。不是因为成绩,而是因为——他做到了。他跑完了,他没有放弃。在那个想放弃的时刻,他选择了继续。

他拿出手机,给喵爱发了一条消息:“1000米跑完了。第七名。”

喵爱秒回:“你居然真的跑了?成绩怎么样?”

“4分15秒。”

“厉害!你不是从来不运动吗?”

方铨铎想了想,回复:“我想试试。”

喵爱发来一个鼓掌的表情,然后说:“方铨铎,你知道吗,你现在做的每一件事,都比以前更勇敢。”

他盯着这行字,笑了。也许她说得对。以前他只敢在代码的世界里冒险,因为那里安全,那里是他的地盘。但现在,他在一个完全陌生的世界里,做着他从来没有做过的事。跑步,上课,做题,交朋友。每一件事都让他害怕,但他还是去做了。

运动会之后是跑操。

这是方铨铎以前最讨厌的活动。每天上午第二节课后,全校学生都要到操场上跑步。竞赛生可以豁免——他们要去机房训练。方铨铎以前每次路过操场,看到那些跑步的同学,心里都会有一丝庆幸:还好我不需要跑。

但现在,他成了跑步的人。

第一天跑操的时候,他站在班级的队伍里,不知道该站哪里。以前他从来没有参加过跑操,不知道队形,不知道口号,不知道要跑几圈。李浩拉了他一把:“站我旁边。跟着我跑就行。”

方铨铎点点头,站在李浩旁边。音乐响起来,队伍开始移动。他跟着李浩的步伐,慢慢地跑。操场上几百个人同时跑步,脚步声像鼓点,整齐而有力。方铨铎跑在队伍中间,看着周围的同学,忽然觉得——原来这就是“集体”的感觉。

不是机房里那种各刷各的题的孤独,而是一群人朝着同一个方向前进的温暖。没有人掉队,没有人超前,大家步伐一致,呼吸同步。你不需要跑得很快,你只需要跟上。你不需要比别人强,你只需要和大家在一起。

跑操结束后,同学们三三两两地走回教室。有人聊天,有人打闹,有人去买水。方铨铎走在人群中,李浩在旁边说着什么,他没有听清,但他点了点头。他忽然觉得,自己好像真的成为了这个班级的一员。不是那个“搞竞赛的方铨铎”,而是“我们班的方铨铎”。

那天晚上,他给喵爱发消息:“今天跑操了。”

“感觉怎么样?”

“挺好的。和大家一起跑,不累。”

喵爱发来一个笑脸:“你以前不是最讨厌跑操吗?”

“以前觉得浪费时间。现在觉得……还挺有意思的。”

“因为有人陪你跑?”

方铨铎想了想,回复:“也许吧。”

喵爱沉默了一会儿,然后说:“方铨铎,你以前在机房的时候,是不是很孤独?”

他愣住了。孤独?他从来没有想过这个问题。在机房的时候,他身边永远有人——队友、对手、教练。他们讨论题目,分享代码,争论算法。他以为那就是陪伴。但现在回想起来,那些人和他之间,隔着一层叫做“竞赛”的玻璃。他们讨论的是题目,不是心情;分享的是代码,不是秘密;争论的是算法,不是人生。他们在一起,但他们又是独立的。每个人都在为自己的未来拼命,没有时间关心别人在想什么。

“也许吧。”他回复。

“现在呢?”

他想了想,回复:“现在不孤独了。”

喵爱发来一个拥抱的表情。

那天晚上,方铨铎坐在书桌前,打开了电脑。

喵爱发来一条消息:“方铨铎,你今晚有空吗?”

“有。怎么了?”

“想玩杀戮尖塔II吗?联机模式。”

方铨铎愣了一下。《杀戮尖塔II》有联机模式——最多支持四人合作,玩家拥有各自的独特卡组,也能获得全队共享的“团队遗物”。玩家之间可以互相施加增益、治疗,甚至为队友召唤随从,通过配合打出强大的协同效果。他之前一直是一个人玩,从来没有试过联机。

“好。”他回复。

两个人登录Steam,进入联机房间。喵爱选的是静默猎手——她最喜欢的角色,擅长叠毒和抽牌。方铨铎选了铁甲战士——他的老本行,力量战。

“你玩过联机模式吗?”喵爱问。

“没有。你呢?”

“也没有。但我看过攻略。”

“那咱们试试。”

游戏开始了。第一层是“密林”——一片植物繁茂、四处缠绕的遗迹,在这里生活的物种有许多都像是传说中的林间生物。方铨铎的铁甲战士走在前面,喵爱的静默猎手跟在后面。第一场战斗,两只小怪。方铨铎打出“完美打击”,造成十八点伤害。喵爱给怪物上毒,每回合掉血。配合得很默契。

“你打前面,我叠毒。”喵爱说。

“好。”

第二场战斗,遇到了精英怪。怪物的攻击很高,方铨铎的血量掉得很快。

“我来给你加血。”喵爱打出了一张“治疗药膏”——联机模式下特有的卡牌,可以为队友回复生命值。

方铨铎的血量回升了。他看着屏幕上那个绿色的加号,忽然觉得心里暖暖的。

“谢了。”

“不客气。你抗住,我输出。”

两个人一路打到了Boss面前。第一层的Boss是“仪式兽”——一只巨大的野兽,每三个回合会释放一次全屏攻击。方铨铎的铁甲战士在前面扛伤害,喵爱的静默猎手在后面叠毒。打到一半的时候,方铨铎的血量见底了。

“我快不行了。”他说。

“别怕。我有复活药水。”

喵爱打出了一张“瓶中船”——联机模式下的稀有药水,可以为队友复活一次。方铨铎的角色站起来,继续战斗。

最后一击,喵爱的毒叠到了五十层,仪式兽的血量每回合掉五十点。它倒下了。

屏幕上弹出“胜利”两个字。方铨铎靠在椅背上,笑了。

“我们赢了。”他说。

“嗯。”喵爱的声音从耳机里传来,带着笑意,“我们赢了。”

方铨铎看着屏幕上并肩站立的两个角色——铁甲战士和静默猎手。一个扛着大剑,一个握着匕首。一个在前面抗伤害,一个在后面叠毒。他们是不同的角色,有不同的技能,不同的打法。但他们在一起的时候,比任何一个人都强。

“喵爱,”他说。

“嗯?”

“我们以后经常联机吧。”

喵爱笑了:“好。”

那天晚上,他们玩了三局。两胜一负。输的那一局是因为第二层的Boss是“灵魂异鱼”——方铨铎最讨厌的那个Boss,全屏攻击太强,他们没扛住。

“再来一局?”喵爱问。

“好。”

第四局,他们换了一下角色。方铨铎选了故障机器人,喵爱选了铁甲战士。两个人都不太熟悉对方的角色,打得磕磕绊绊,但配合得越来越默契。打到第三层的时候,他们遇到了一个随机事件——一个NPC问他们要不要交换一张卡牌。

“换不换?”喵爱问。

方铨铎看了看自己的牌组,又看了看喵爱的牌组。“换。你把那张‘完美打击’给我,我把这张‘雷暴’给你。”

“好。”

交换之后,两个人的牌组都更强了。方铨铎的故障机器人有了高伤害的攻击牌,喵爱的铁甲战士有了范围伤害的能力。最后一场战斗,他们面对的是最终Boss——大恶魔。两个人都只剩半血,Boss还有大半管血。

“怎么办?”喵爱问。

方铨铎盯着屏幕,快速计算。“你给它上易伤,我爆发输出。”

“好。”

喵爱打出“易伤”牌,Boss受到的伤害增加75%。方铨铎打出所有的攻击牌,一回合打出了六十点伤害。Boss的血量掉到四分之一。下一回合,Boss释放全屏攻击,两个人的血量都见底了。

“最后一击。”方铨铎说。

“一起。”

两个人同时打出最后一张攻击牌。屏幕上,铁甲战士的大剑和故障机器人的雷电同时击中Boss。Boss的血条归零,缓缓倒下。

屏幕上弹出“胜利”两个字。方铨铎和喵爱同时笑了。

“我们赢了。”喵爱说。

“嗯。我们赢了。”

方铨铎看着屏幕,忽然想起一件事。几个月前,他一个人坐在书桌前,一遍一遍地爬塔,一遍一遍地失败。那时候他觉得自己像一个孤军奋战的战士,没有人帮忙,没有人支援,只有他自己。但现在,他旁边有一个人。一个会给他加血的人,一个会帮他叠毒的人,一个会在最后一击和他一起出手的人。

“喵爱,”他说。

“嗯?”

“谢谢你陪我玩。”

喵爱沉默了一会儿。然后她说:“方铨铎,你知道吗,我以前都是一个人玩这个游戏。”

方铨铎愣住了。

“我没有可以联机的人。”喵爱说,“队友们都在训练,没时间玩游戏。我也不好意思找他们。所以一直都是一个人。”

方铨铎听着,心里有一种说不出的感觉。

“但现在不一样了。”喵爱说,“我有你了。”

方铨铎握着鼠标,看着屏幕上并肩站立的两个角色。铁甲战士和静默猎手。他们站在塔顶,披风在风中猎猎作响,云层在脚下翻涌。

“喵爱,”他说,“以后你想玩的时候,随时叫我。”

“好。”

“不管多晚。”

“好。”

“不管我在做什么。”

喵爱笑了:“好。”

关掉游戏的时候,已经是凌晨一点了。方铨铎躺在床上,盯着天花板。那道裂缝还在那里,从灯座延伸到墙角。但他已经不觉得那是伤口了。那是时间的痕迹,是他走过的路的证明。

他拿起手机,给喵爱发了一条消息:“晚安。”

喵爱秒回:“晚安。明天见。”

他盯着“明天见”这三个字,笑了。明天见。不是“晚安”,不是“改天聊”,而是“明天见”。因为他们明天真的会见到——在屏幕的两端,在消息的往来中,在彼此的世界里。

他放下手机,闭上眼睛。窗外的路灯还亮着,橘黄色的光透过窗帘的缝隙照进来,在天花板上投下一道细长的光斑。他盯着那道光线,慢慢地睡着了。

明天,他还要去上课。还要做数学题,还要补物理,还要背化学。还要跑操,还要和同学们一起吃午饭,还要在课间和李浩聊天。还要在晚上打开电脑,和喵爱一起爬塔。

这是他的新生活。没有竞赛,没有省队,没有NOI。但有朋友,有同学,有喵爱。有操场上的阳光,有跑操时的脚步声,有联机时的笑声。有失败,有胜利,有重新开始的勇气。

他想起《杀戮尖塔II》里铁甲战士站在塔顶的画面。他不记得一千年前看到了什么,但他知道一件事——他不是一个人。他从来都不是。

第八章:她

六月的第一个周一,方铨铎走进了全市模拟考的考场。

这是他退役后第一次参加大型考试。三个月的文化课补习,说长不长,说短不短。他觉得自己准备好了——数学能跟上,英语有优势,语文靠老本,物理化学虽然弱,但至少不是零基础了。他甚至在考前一周做了一套去年的模拟卷,觉得自己至少能考个四百分。按照这个成绩,他能上一个不错的大专。

但考试不是训练。训练的时候,错了可以重来,不会可以看答案。考试只有一次机会。方铨铎以为自己知道这意味着什么。他参加过无数次竞赛,每一次都是一次定胜负。他以为自己不怕考试。

但他错了。

竞赛和高考不一样。竞赛里,你面对的是算法,是逻辑,是你可以掌控的东西。高考里,你面对的是记忆,是熟练,是你永远无法完全掌控的东西。竞赛里,你输了知道输在哪里——哪道题没做出来,哪个边界条件没考虑到。但高考里,你输了都不知道自己是怎么输的。那些选择题,四个选项看着都对;那些填空题,写上去的数字自己都不确定;那些大题,每一步都像是在走钢丝。

第一场是语文。方铨铎的古文阅读卡住了。那篇文言文他读了三遍,还是没读懂。什么“之乎者也”,什么“其而所者”,在他眼里变成了一堆毫无意义的符号。他凭感觉选了答案,但心里知道大概率是错的。作文题目是“论坚持”。他盯着这个题目,脑子里一片空白。坚持?他坚持了三年竞赛,最后换来了0.8分。他该写什么?写坚持的意义?他自己都不信。写坚持的代价?那太丧了。他咬着笔帽,熬了四十分钟,凑出了一篇八百字的文章。写完自己读了一遍,发现连题目要求都没看清楚——人家要的是议论文,他写了一篇记叙文。

下午是数学。这是他的“强项”。选择题前十道还行,后两道直接蒙了C。填空题四道,他只做出来一道——集合的那道,还是因为题目里写着“A∩B≠?”,他认识那个符号。大题就更惨了。三角函数那道,他写了公式,代了数字,算出来一个负数,怎么想都不对。立体几何那道,他画了图,建了系,写到一半发现坐标设错了。导数那道,他连题目都没看懂。

交卷的时候,他看了一眼旁边同学的答题卡。密密麻麻,写满了。再看自己的,大片大片的空白。他把答题卡翻过去,不想看了。

第二天是理综。物理的大题他一道都没做完。第一道力学题,他写了牛顿第二定律的公式,然后不知道该怎么往下走了。第二道电学题,他连电路图都看不懂。化学的实验设计,他完全不知道在问什么。生物是他唯一能做的,选择题蒙了几道,填空题写了几个空,但那点分数根本不够补前面的窟窿。

下午是英语。这是他的“优势科目”。三年的竞赛训练,让他读了无数篇英文论文、英文题解、英文文档。他以为自己英语很好。但试卷发下来,他发现高考英语和竞赛英语完全是两回事。竞赛里,他只需要看懂技术文档,那些词汇是固定的、有限的。高考里,他要考语法、考搭配、考那些他从来没用过的词组。阅读理解他做得还行,但语法填空和改错就完全靠蒙了。作文题目是“介绍一个你敬佩的人”。他写了图灵——计算机科学的奠基人。但他不知道“图灵”的英文怎么拼,写成了“Turing”,又觉得不对,改成了“Turing”,又改回来。最后他写的是“the father of computer science”,连名字都没敢提。

考试结束的铃声响起的时候,方铨铎坐在座位上,看着窗外。六月的北京,阳光很烈,照在操场上泛着白光。他想起几个月前的省选,也是这样的阳光,也是这样结束的铃声。那时候他差了0.8分。这一次,他不知道差了多少分,但他知道——差很多。多到他甚至不敢去想。

成绩出来那天,方铨铎一个人坐在房间里,盯着屏幕。

总分138分。语文38,数学21,英语45,理综34。

他盯着那个数字,看了很久。138。他初中毕业考试都比这个分数高。他高一上学期期末考了523分。三年竞赛,他以为自己只是把文化课暂时放下了,以为自己随时能捡回来。但现在他知道了——不是放下,是扔掉。三年的竞赛生涯,把他脑子里那些高中知识一点一点地挤了出去,取而代之的是后缀自动机、网络流、线段树合并。那些东西不会消失,但它们会占据空间。当他想把高中知识装回去的时候,他发现已经没有位置了。

他想起省选那天,那道后缀自动机的题目,他写出了正确的代码,通过了所有样例。他以为自己赢了。但0.8分告诉他,他没有。现在,138分告诉他,他什么都没有了。

他关掉电脑,躺在床上,盯着天花板。那道裂缝还在那里,从灯座延伸到墙角。他盯着它,忽然觉得它在嘲笑他。你看,你走了三个月,又回到了原点。不,比原点还远。原点至少是523分。现在你是138分。你是倒退着走的。

手机震了。是喵爱的消息:“成绩出来了吗?怎么样?”

他没有回复。

又震了:“方铨铎?”

还是没有回复。

又震了三次。他把手机翻过去,屏幕朝下,不想看到任何消息。他不想说话,不想解释,不想听到任何人说“没关系”或者“下次会好的”。他不知道下次会不会好。他只知道这次很烂,烂到他觉得自己三个月的努力都是笑话。

那天晚上,他没有打开电脑。喵爱发来的联机邀请,他看了一眼,然后关掉了。他不想爬塔。不想做任何事。只想躺着。盯着天花板。等时间过去。

第二天,方铨铎没有去上课。

他给班主任发了条消息说身体不舒服,然后关了手机。他躺在床上,窗帘拉得死死的,房间里暗得像洞穴。他不想见任何人,不想说话,不想解释。他只想消失。

妈妈敲门进来,问他怎么了。他说没事,就是累。妈妈看了他一眼,没有多问,把一碗粥放在床头柜上,然后出去了。粥是小米粥,上面飘着几颗红枣。他盯着那碗粥,忽然想起几个月前,他也是这样躺着,也是这样不想动。那时候喵爱对他说:“你只需要活着。呼吸,吃饭,睡觉。”他以为他已经做到了。但现在他知道了——他只是活着,但没有活过来。

手机在枕头下面震了一下。他不想看。又震了一下。又震了一下。他拿起来,看到喵爱发来的消息:

“方铨铎,你昨天没回我。”

“你今天也没上课。”

“你还好吗?”

“方铨铎,你回我消息。”

“我很担心你。”

他看着这些消息,忽然觉得讽刺。几个月前,也是这样的消息。从“你还好吗”到“你在哪”到“我很担心你”。一模一样。他以为自己变好了,但其实什么都没有变。他还是那个会考砸的方铨铎,还是那个会让别人担心的方铨铎,还是那个躺在床上的废物。

他打字:“138分。”然后关掉手机。

下午三点,方铨铎被一阵门铃吵醒了。

他听到妈妈去开门,然后听到一个陌生的声音——不,不是陌生的。是一个他听过无数次、但从未在现实中听到过的声音。那个声音从手机里传出来过无数次,在深夜的语音消息里,在联机游戏的语音频道里,在那些他说“晚安”之前的最后几句话里。但现在,那个声音在他家门口。

“阿姨好,我是方铨铎的朋友。我叫喵爱。”

方铨铎猛地坐起来。喵爱?喵爱的声音?在……他家门口?

他听到妈妈说:“你是铨铎的朋友?快进来。他在房间里,今天一天没出来。”

脚步声越来越近。走廊,地板,他的房门。每一步都踩在他心跳上。然后门被推开了。

喵爱站在门口。

她穿着一件白色T恤和牛仔裤,背着一个双肩包,头发有点乱,像是赶了很久的路。她的额头上还有汗珠,脸被太阳晒得有点红。她不是坐高铁来的——高铁不会让人这么狼狈。她是跑来的。从车站到他家,她是一路跑来的。

她看到方铨铎的时候,愣了一下。然后她笑了。那个笑容很疲惫,但很温柔。像一盏灯,在黑暗里亮了一下。

“方铨铎,”她说,“你还好吗?”

方铨铎张了张嘴,一个字都说不出来。他坐在床上,看着喵爱,脑子一片空白。喵爱。喵爱在这里。在杭州的喵爱,在北京的喵爱,在他房间门口的喵爱。那个他只在屏幕里见过的女孩,此刻站在他面前,头发乱糟糟的,脸上还有汗珠,眼神里全是他。

“你怎么来了?”他的声音沙哑得不像自己。

喵爱走进来,在他床边坐下。床垫陷了一下,她身上有一股阳光和汗水混合的味道,是真实的味道,不是屏幕里的味道。她看着他,眼神里有心疼,有无奈,还有一点点生气。

“你不回我消息,”她说,“不接我电话,不去上课,不联机。你让我怎么办?”

方铨铎低下头,不敢看她的眼睛。

“我以为你又回到那时候了。”喵爱的声音很轻,“我怕你又一个人扛着。我怕你又觉得世界塌了。138分就138分,你至于吗?”

方铨铎的喉咙动了一下。

“所以我来了。”喵爱说,“我请了两天假,买了最早的高铁。四个小时。然后从车站跑到你家。”

方铨铎抬起头,看着她。她的眼睛红红的,但没有哭。她看着他,像在看一个很重要很重要的东西。那个东西可能碎了,可能坏了,可能只剩下碎片了,但她还是来了。

“喵爱,”他说,“我考了138分。”

“我知道。”

“数学21分。”

“我知道。”

“我三个月白费了。”

喵爱看着他,沉默了一会儿。然后她说:“方铨铎,你觉得我为什么来?”

方铨铎愣住了。

“不是因为你的成绩,”喵爱说,“是因为你不回我消息。138分也好,21分也好,我都不在乎。但你不理我,我在乎。”

方铨铎的眼眶忽然酸了。

“你考砸了可以告诉我,”喵爱的声音有些颤抖,“你难过了可以跟我说。你不想联机可以告诉我‘今天不想玩’。但你不能消失。你不能不理我。你知不知道我昨天等了多久?你知不知道我今天翘了集训跑过来,教练问我为什么,我说‘我朋友需要我’?”

方铨铎看着她,眼泪毫无预兆地涌了出来。他咬着嘴唇,不让自己哭出声,但眼泪止不住地流。他已经很久没有在别人面前哭过了。省选那天没有,退役那天没有,看到138分的时候也没有。但现在,在这个女孩面前,他忍不住了。

喵爱没有说话。她伸出手,轻轻地放在他的头上。她的手指穿过他的头发,很轻,很慢,像在安抚一只受伤的动物。

“方铨铎,”她说,“你不是一个人。你从来都不是。”

那天下午,喵爱坐在方铨铎的房间里,陪他聊了很久。

她没有安慰他,没有说“没关系”或者“下次会好的”。她只是坐在那里,有时候握着他的手,有时候拍拍他的背,有时候什么都不做,就那么安静地坐着。

“你知道吗,”喵爱说,“我去年第一次模拟考,考了187分。”

方铨铎愣住了。

“比你多49分。”她笑了笑,“但那也是我人生最低分。我当时觉得天塌了。一个竞赛生,考了187分,说出去谁信?”

“后来呢?”

“后来我哭了整整一天。然后第二天起来,继续做题。一天一天地做,一分一分地涨。187到200,200到250,250到300,300到350。每一步都很慢,但每一步都在往前走。”

方铨铎沉默了。

“方铨铎,”喵爱看着他的眼睛,“138分不是终点。它只是一个数字。就像0.8分一样,它不能定义你是谁。”

方铨铎的喉咙动了一下。

“你还记得你退役的时候,我跟你说过什么吗?”

“记得。你说,‘你只需要活着’。”

喵爱笑了:“对。现在我也要跟你说同样的话。你不需要一下子就考到400分。你只需要活着。活着,吃饭,睡觉,做题。一天一天地来。”

方铨铎看着她,忽然觉得心里有什么东西松动了一下。像冰封的河面下,有水开始流动。

“喵爱,”他说,“你为什么对我这么好?”

喵爱愣了一下。然后她低下头,脸有点红。

“因为你是方铨铎。”她说,“因为你给我讲过题,因为你在我害怕的时候回了我消息,因为你在省选前夜猜对了所有题目。因为你在退役之后没有放弃,因为你用生成函数解出了那道题,因为你报了1000米,因为你跑了第七名。”

她抬起头,看着他。

“因为你值得。”

方铨铎看着她,不知道该说什么。

“方铨铎,”喵爱说,“你知道吗,我从来没有对任何人这样过。”

方铨铎愣住了。

“你是第一个。”她说,“第一个让我愿意坐四个小时高铁来见的人。第一个让我愿意翘掉集训的人。第一个让我在手机那头等了整整一天的人。”

方铨铎的眼眶又酸了。

“所以你不能消失。”喵爱说,“你不能不理我。你不能让我担心。你可以考138分,可以考38分,可以考0分。但你必须在。你必须在。”

方铨铎伸出手,握住了她的手。她的手很暖,指尖微微发抖。他握着她的手,像是握住了什么很重要的东西。

“喵爱,”他说,“对不起。”

“不用对不起。”

“谢谢你。”

“不用谢。”

“我喜欢你。”

喵爱愣住了。她抬起头,看着他。她的眼睛里有泪光,但她在笑。

“我知道。”她说,“我也喜欢你。”

方铨铎笑了。这是他三天来第一次笑。

那天晚上,喵爱没有回酒店。她坐在方铨铎的书桌前,打开了电脑。

“来,”她说,“爬塔。”

方铨铎愣了一下:“你不是请了两天假吗?今天不训练了?”

“今天不训练。今天陪你。”

两个人登录Steam,进入联机房间。喵爱选了静默猎手,方铨铎选了铁甲战士。第一局,他们打到了第三层,被Boss灭了。第二局,他们换了角色,打到了最终Boss,差一点就赢了。第三局,他们回到了最熟悉的组合——铁甲战士和静默猎手。一路顺风顺水,打到了塔顶。

最后一击,喵爱的毒叠到了六十层,Boss的血量每回合掉六十点。它倒下了。屏幕上弹出“胜利”两个字。

“我们赢了。”喵爱说。

“嗯。”方铨铎说,“我们赢了。”

两个人沉默了一会儿。然后喵爱说:“方铨铎,你知道吗,我今天在高铁上想了一件事。”

“什么事?”

“138分,其实是一个很好的数字。”

方铨铎愣住了:“好在哪里?”

“因为它是最低的。”喵爱说,“你已经到谷底了。从今天开始,每一步都是往上走。”

方铨铎看着屏幕上的“胜利”两个字,忽然觉得她说得对。138分。这是他人生最低的分数。但也是他的起点。从138分开始,每多考一分,都是进步。每多对一道题,都是胜利。

“喵爱,”他说,“谢谢你。”

“谢什么?”

“谢谢你来了。”

喵爱笑了。那个笑容从耳机里传来,暖暖的,像五月的风。

“方铨铎,”她说,“我以后每次模拟考,都陪你。”

“你不训练了?”

“训练重要,但你更重要。”

方铨铎握着鼠标,看着屏幕上并肩站立的两个角色。铁甲战士和静默猎手。一个扛着大剑,一个握着匕首。一个在前面抗伤害,一个在后面叠毒。他们一起输过,一起赢过,一起从第一层爬到塔顶。

“喵爱,”他说。

“嗯?”

“下次模拟考,我一定能考得更好。”

“多少分?”

“至少200分。”

喵爱笑了:“那我等着。”

喵爱在北京待了两天。

第一天,她陪方铨铎分析了那张138分的试卷。数学21分——选择题蒙对了四道,填空题做对了一道集合,大题只拿了步骤分。她把每一道错题都看了一遍,在草稿纸上重新做了一遍,然后把解题步骤写在方铨铎的笔记本上。

“你不是不会,”她说,“你是忘了。忘了没关系,捡起来就行。”

第二天,她陪方铨铎去上了课。她坐在教室最后一排,戴着方铨铎的校服外套,假装是转学生。李浩回头看了她好几次,小声问方铨铎:“这谁啊?”方铨铎说:“我朋友。”李浩说:“女朋友?”方铨铎没有回答,但嘴角翘了一下。

下午,方铨铎送喵爱去车站。站在进站口,两个人沉默了很久。

“回去吧,”喵爱说,“明天还要上课。”

“嗯。”

“好好做题。”

“好。”

“联机的话,晚上十点以后。我训练结束。”

“好。”

喵爱看着他,忽然伸出手,抱了他一下。很短,只有一秒。但那一秒里,方铨铎闻到了她头发上的洗发水味道,感觉到了她手臂的温度,听到了她在他耳边说的那句话——

“方铨铎,你不是一个人。你从来都不是。”

然后她松开手,转身走进了车站。她的背影在人流中越来越小,最后消失在检票口。

方铨铎站在那里,站了很久。六月的北京,阳光很烈,照在身上暖洋洋的。他深吸一口气,转身走向地铁站。

他拿出手机,给喵爱发了一条消息:“到家了告诉我。”

喵爱秒回:“好。”

然后她又发了一条:“方铨铎,138分,记住了吗?”

“记住了。”

“这是你的起点。不是你的终点。”

方铨铎看着这行字,笑了。他加快脚步,走向地铁站。今天有数学课,老师要讲试卷。他知道自己的试卷上全是红叉,但他不怕了。那些红叉不是终点,是起点。

从138分开始,每多考一分,都是进步。每多对一道题,都是胜利。而她会在屏幕那头,陪着他一起走。

第九章:APIO,短暂的复活

五月下旬的一个下午,方铨铎收到了一条意想不到的消息。

教练:“铨铎,APIO的参赛名单出来了。你有资格参加。”

方铨铎盯着屏幕,愣了很久。APIO——亚洲与太平洋地区信息学奥林匹克。那是他还在竞赛队时梦寐以求的比赛。但他已经退役了,已经三个月没有碰过竞赛题了。他怎么会有资格?

他回复:“老师,我不是退役了吗?”

教练说:“APIO的参赛资格看的是NOIP成绩,不是省选。你去年NOIP考了全省第三,当然有资格。退役是你自己说的,CCF又没有把你除名。”

方铨铎握着手机,不知道该说什么。NOIP全省第三。那是他去年秋天的成绩,那时候他还是竞赛生,还在为省选拼命。他以为那个成绩已经随着省选的失败一起作废了。但原来没有。原来那个成绩还在,像一颗被遗忘的种子,在春天忽然发了芽。

“你去不去?”教练问。

方铨铎沉默了。去?他三个月没碰竞赛题了。他现在满脑子都是导数、牛顿定律、元素周期表。后缀自动机的模板他还能默写出来吗?网络流的建模他还记得吗?线段树合并的代码他还能一遍写对吗?他不知道。

“我考虑一下。”他回复。

那天晚上,他给喵爱发了消息:“教练问我参不参加APIO。”

喵爱秒回:“当然参加啊!”

“我三个月没做题了。”

“那又怎样?”

“我会考砸的。”

喵爱发来一段语音。他点开,听到她的声音,带着一种不容置疑的坚定:“方铨铎,你还记得你退役的时候我跟你说过什么吗?我说,那些东西不会消失。它们在你身体里。你只是太久没用,生锈了。但生锈了擦一擦就好了。”

方铨铎沉默了。

“而且,”喵爱继续说,“APIO只看NOIP成绩,不看省选。你的NOIP成绩摆在那里,谁也拿不走。你去参加,不是为了证明什么。是为了告诉自己——你没有白费。”

他想了很久。然后他打开电脑,登录洛谷,点开了“我的提交”。最后一页,是三个月前他做的那道后缀自动机。绿色的“Accepted”还在那里,像一个老朋友,安静地等着他回来。

他深吸一口气,开始做题。

接下来的两周,方铨铎开始了短暂的“复活”训练。

每天放学后,他去机房待两个小时。不是像以前那样拼命刷题,而是慢慢地、一道一道地做。先从最基础的模板题开始——线段树、树状数组、最短路、最小生成树。这些他曾经闭着眼睛都能写出来的代码,现在需要想很久。但它们在回来。那些记忆像沉在河底的石头,被时间的水流冲刷过后,慢慢露出水面。

第二周,他开始做稍微难一点的题。动态规划、图论、字符串。他的速度还是很慢,但准确率在提高。他发现自己并没有忘记那些知识——它们只是被压在了文化课下面,需要一点一点地挖出来。

喵爱每天晚上都会问他:“今天做了几道题?”

他会告诉她:“三道。”“五道。”“一道都没做出来,卡了一晚上。”

喵爱会说:“卡住了就休息。明天继续。”

陈煜轩也听说了他要参加APIO,发来消息:“方铨铎,加油。让那帮现役选手看看,退役的人也能打。”

方铨铎笑了:“我只是去打酱油的。”

“打酱油也能打个银牌回来。”

连铝の都发了一条消息。只有四个字:“好好准备。”

方铨铎看着这四个字,忽然觉得心里暖暖的。那些他以为已经断了的关系,原来还在。那些他以为已经结束的东西,原来只是暂停。

APIO在线上举行。北京赛区设在人大附中的机房。

六月的一个周六早上,方铨铎走进了那个他无比熟悉的机房。三个月了。自从省选之后,他就再也没有来过这里。机房还是老样子——五十台电脑,五行十列,窗帘拉着,空调嗡嗡作响。他走到自己的老位置前,坐下。键盘还是那个键盘,屏幕上还留着上次训练的界面。他关掉那些窗口,打开比赛系统。

输入考号的时候,他的手在微微发抖。不是紧张,是一种奇怪的感觉——像回家。离开很久之后,推开家门,发现一切都还在原来的地方。

八点整,题目发下来了。

方铨铎快速浏览了一遍。第一题,数据结构,线段树合并。他做过无数次的类型。第二题,动态规划,状态压缩。第三题——

他的目光停在了第三题上。

几何题。

在竞赛里,几何题是最让人头疼的类型之一。计算几何涉及大量的浮点数运算、边界条件、特殊情况,代码动辄两三百行,调试起来极其痛苦。大多数竞赛生都会选择跳过几何题,把时间留给其他题目。

方铨铎以前也是这样的人。他的几何一直不太好——不是不会,是不够熟练。在竞赛集训的时候,他遇到几何题通常会先做其他题,有时间再回来看。但今天,他盯着这道几何题,脑子里忽然有什么东西被触动了。

题目描述的是一个经典问题:平面上有若干个点,求一个最小圆覆盖所有点。也就是最小圆覆盖问题。这是一个标准的计算几何问题,通常的做法是随机增量法,复杂度O(n)。方铨铎记得这个算法——他在竞赛集训时学过,但从来没有真正实现过,因为边界条件太多,细节太繁琐。

但今天,他盯着这道题,脑子里浮现出的不是随机增量法,而是另一种东西。

解析几何。

三个月的高中数学复习,让他重新捡起了那些他曾经以为永远用不上的知识。直线的方程、圆的方程、点到直线的距离、两点间的距离、两条直线的交点、圆与圆的位置关系。这些东西,在竞赛里是“常识”,但从来没有人会真的用它们来解题——因为计算量太大了。高中解析几何的方法,通常需要列方程、代入、消元、求解,每一步都可能出错,而且效率极低。

但方铨铎忽然意识到一件事——这道题的n很小,只有1000。1000个点,O(n^3)的算法都能在1秒内跑完。他不需要用那个复杂且容易出错的随机增量法。他可以用最笨的方法——枚举。

最小圆覆盖问题的性质是:最小圆要么由两个点确定(以两点连线为直径的圆),要么由三个点确定(这三个点的外接圆)。所以,他只需要枚举所有点对和所有点三元组,检查每个候选圆是否能覆盖所有点,然后取半径最小的那个。

点对的数量是1000999/2 ≈ 500,000。点三元组的数量是1000999*998/6 ≈ 166,000,000。1.66亿次枚举,每次检查需要O(n)即1000次操作,总计算量是1.66e11——太大了,不可能在时限内完成。

但方铨铎想到了优化。他不需要枚举所有三元组。他可以用旋转卡壳、用凸包、用最远点对来减少候选。但这些东西他忘得差不多了。然后他忽然想起了另一种方法——二分答案。

二分一个半径r,然后检查是否存在一个半径为r的圆能覆盖所有点。检查的方法很简单:对于每个点,以该点为圆心、2r为半径画圆,如果所有圆的交集非空,那么存在这样的圆。而判断n个圆的交集是否非空,可以转化为判断n个圆盘是否有公共交点。这可以通过枚举所有圆的交点(每两个圆最多两个交点)来检查。

每两个圆的交点可以用解析几何的方法计算——联立两个圆的方程,消去二次项,得到一条直线,然后代入求解。这正是高中解析几何的内容。方铨铎在数学课上做过无数道这样的题。他闭着眼睛都能写出求解公式。

计算量:二分30次(精度1e-6),每次检查需要枚举所有圆对(约50万对),每对计算两个交点(最多2个),每个交点检查是否在所有圆内(1000次)。总计算量大约是30 500,000 2 * 1000 = 3e10,还是太大。

方铨铎又优化了一下。他注意到,如果存在一个半径为r的圆能覆盖所有点,那么这些点的最小包围圆的半径一定小于等于r。而最小包围圆的圆心一定在某个点的“最远点Voronoi图”的顶点上。但他不记得怎么算了。

他想了很久。然后他忽然笑了。

他想到了最简单的方法。既然n只有1000,他可以直接用模拟退火。模拟退火是一种随机搜索算法,不需要复杂的几何推导,只需要一个评价函数:对于给定的圆心(x,y),计算它到所有点的最远距离,然后想办法最小化这个距离。

模拟退火的代码极其简单。随机选一个起点,然后随机扰动,如果新点更优就接受,否则以一定概率接受。这个算法在竞赛里通常被认为是“玄学”,因为不保证找到最优解。但在这道题上,由于数据范围小、精度要求不高,模拟退火完全可以拿到大部分分数。

方铨铎开始敲代码。他先写了一个函数,给定圆心,计算到所有点的最大距离。然后写模拟退火的主循环。初始温度设为1000,降温速度0.99,每个温度迭代100次。代码不到五十行,比他以前写的任何一道几何题都短。

跑了一下样例,输出正确。他又测了几组随机数据,结果和暴力枚举一致。他看了一眼时间——从开始写代码到通过样例,只用了四十分钟。

他靠在椅背上,长出了一口气。

这道几何题,他以前绝对不会这样做。以前的他会试图用随机增量法,会花两个小时调试边界条件,会在WA和TLE之间反复横跳。但现在,他用的是高中解析几何的思路,用的是模拟退火的“玄学”算法。这些东西,不是竞赛教会他的。是文化课。是那三个月的文化课复习,让他重新认识了那些他以为永远用不上的数学知识。是138分的模拟考,让他学会了用最简单的方法解决问题。是喵爱说的“生锈了擦一擦就好了”,让他不再害怕尝试。

他提交了第三题。绿色的“Accepted”。

三个小时后,比赛结束。

方铨铎走出机房,阳光刺得他眯起眼睛。六月的北京已经很热了,空气里有一股蒸腾的热气。他站在信息楼门口,看着陆续走出来的选手们。有人面色凝重,有人如释重负,有人一边走一边和身边的人对答案。

他打开手机,看到喵爱的消息:“考得怎么样?”

“还行。第三题用模拟退火过了。”

“模拟退火?那道几何题?”喵爱发来一串问号,“那不是玄学算法吗?”

“能过就行。”

喵爱发来一个笑哭的表情:“方铨铎,你变了。以前的你绝对不会用模拟退火。”

方铨铎想了想,回复:“以前的我会用随机增量法,然后WA一整天。”

喵爱发来一串“哈哈哈哈哈哈”。

“铝の呢?”方铨铎问。

“他提前一个小时交卷了。三道题全过。”

方铨铎笑了。铝の还是那个铝の。不管他在哪里,不管对手是谁,他永远是第一个交卷的人。

“你呢?”方铨铎问喵爱。

“前两道过了,第三道没做出来。几何题太难了。”

“没事。下次就好了。”

“下次?下次你帮我做。”

方铨铎笑了:“好。”

成绩公布那天,方铨铎正在上数学课。

手机震了一下。他低头看了一眼——是洛谷群的消息:“APIO成绩出来了!”

他点开链接,心跳得厉害。页面加载的每一秒都像一个世纪。终于,页面刷新了。亚洲与太平洋地区信息学奥林匹克2025获奖名单。

第一名:铝の,中国人民大学附属中学,300分。

第二名:方铨铎,中国人民大学附属中学,274分。

他盯着屏幕,愣了很久。第二名。全国第二。他一个退役了三个月的人,拿了全国第二。

手机疯狂地震动。喵爱的消息:“第二名!!!你看到了吗!!!”

陈煜轩的消息:“方铨铎,你真的退役了吗?第二???”

教练的消息:“不错。”

连铝の都发了一条:“274分,第三题用了什么方法?”

方铨铎回复:“模拟退火。”

铝の沉默了一会儿,然后说:“有意思。”

方铨铎看着那三个字,笑了。他知道“有意思”在铝の的字典里,是最高的评价。

那天晚上,方铨铎给喵爱打电话。

“喵爱,”他说,“我拿了第二。”

“我知道!我看到了!”

“但我已经退役了。这个成绩不算什么。”

喵爱沉默了一会儿。然后她说:“方铨铎,你觉得这个成绩是怎么来的?”

方铨铎愣住了。

“是你退役之后学的那些东西,”喵爱说,“是你138分的模拟考,是你每天跑操时想的那些解析几何,是你在数学课上做的那些导数题。这些都不是竞赛。但它们让你变成了一个不一样的人。一个会用模拟退火解几何题的人。”

方铨铎握着手机,不知道该说什么。

“方铨铎,”喵爱说,“你没有白费。你走的每一步,都没有白费。”

他闭上眼睛,脑海里浮现出这三个月走过的路。138分的试卷,跑操时整齐的脚步声,联机爬塔时喵爱的治疗药水,数学课上那道没人做出来的概率题,还有今天——那道他用模拟退火解出来的几何题。

每一步都看似无用,每一步都把他带到了这里。

“喵爱,”他说,“谢谢你。”

“谢什么?”

“谢谢你告诉我,生锈了擦一擦就好了。”

喵爱笑了:“那你擦好了吗?”

方铨铎想了想,说:“还没有。但我在擦。”

APIO之后,方铨铎又回到了文化课的轨道上。

他没有因为拿了全国第二就重新开始搞竞赛。他知道那条路已经结束了。APIO只是一个插曲,一个短暂的复活,让他确认了一件事——那些东西没有消失。它们只是换了一种方式存在。

他把APIO的获奖证书收好,放在书架的最上层。和竞赛教材放在一起,和那本《算法导论》放在一起,和他三年的青春放在一起。然后他翻开数学课本,继续做题。

这一次,他没有觉得那些公式陌生。它们是他的一部分了。就像后缀自动机、网络流、线段树合并一样,是他身体里的一部分。138分也好,274分也好,都是他走过的路。没有一步是白费的。

那天晚上,喵爱问他:“方铨铎,你还想回去搞竞赛吗?”

他想了很久。然后他回复:“不想。”

“为什么?”

“因为我已经找到新的路了。”

喵爱发来一个笑脸:“什么路?”

方铨铎看着窗外的夜空。今晚的北京,竟然能看到几颗星星。它们挂在远处,微弱却清晰。

“一条不需要0.8分的路。”他说。

第十章:NOI

七月的绍兴,热得像一个蒸笼。

方铨铎走出高铁站的时候,一股湿热的气流扑面而来,像是走进了桑拿房。他穿着白色T恤和牛仔裤,背着一个双肩包,包里装着他准备了两周的“惊喜”。他没有告诉喵爱自己什么时候到,只说了“比赛那天见”。其实他提前一天来了。

手机震了。是喵爱的消息:“你明天什么时候到?我去接你。”

他回复:“不用接。我自己能找到。你好好准备。”

“你确定?”

“确定。明天见。”

他关掉手机,叫了一辆车,直奔绍兴第一中学旁边的酒店。办理入住的时候,前台问他住几天,他说:“两天。”然后他又补了一句:“能不能帮我一个忙?”

前台小姑娘看着他,点了点头。

第一天早上七点,方铨铎站在绍兴第一中学的门口。

学校门口拉起了红色的横幅:“第42届全国青少年信息学奥林匹克竞赛”。门口站着保安和志愿者,检查每一个入场人员的证件。方铨铎没有证件——他不是参赛选手,不是教练,不是工作人员。他只是一个来看比赛的普通人。

但他有别的准备。

他拿出手机,给喵爱发消息:“你到考场了吗?”

“刚到。在门口排队检查。”

“紧张吗?”

“有一点。”

“别紧张。你准备好了。”

“你怎么知道?”

“因为你是喵爱。”

喵爱发来一个笑脸。方铨铎站在校门口,隔着铁栅栏,看到喵爱排在队伍中间。她穿着一件白色的T恤,扎着马尾,背着一个透明的文件袋——里面装着准考证、身份证、笔。她看起来有点紧张,嘴唇抿着,手指在文件袋的边缘轻轻敲打。

方铨铎没有叫她。他只是站在那里,看着她的背影消失在教学楼里。

第一天考试结束的时候,喵爱走出考场,脸色不太好。

她看到方铨铎站在门口,手里举着一杯芋泥波波奶茶,愣了一下,然后走过来。

“你怎么知道我喜欢喝这个?”

“秘密。”

喵爱接过奶茶,喝了一口,然后低下头,沉默了一会儿。

“考得不好?”方铨铎问。

“第二题卡了很久。”她说,“有一道数据结构的题,我用了线段树合并,但写着写着发现不对劲,改了三遍才过。浪费了一个小时。”

“第三题呢?”

“第三题没来得及看完。”

方铨铎看着她,没有说“没关系”。他知道在NOI里,一个小时意味着什么。

“明天还有一天。”他说。

喵爱点点头,喝了一口奶茶,没有再说话。

那天晚上,方铨铎陪她在酒店附近的公园里走了很久。两个人谁都没说话,只是走着,听着蝉鸣,看着路灯下飞舞的飞蛾。走到第三圈的时候,喵爱忽然停下来。

“方铨铎,”她说,“如果我明天也考不好呢?”

方铨铎看着她。路灯的光照在她脸上,她的眼睛里有不安,有害怕,有那种他太熟悉的东西——在结果出来之前,悬在半空中的心。

“你不会考不好的。”他说。

“你怎么知道?”

“因为你是喵爱。”

她没有笑。她看着他,眼神很认真。

“方铨铎,我不是那个翻盘王了。我只是一个普通选手。我会失误,会卡住,会做不出来。”

方铨铎沉默了一会儿。然后他说:“那又怎样?”

喵爱愣住了。

“就算你考不好,”他说,“你还是喵爱。你还是那个从0.3分爬上来的人。你还是那个在江苏集训从二十三名追到第十名的人。你还是那个每天给我发消息、从杭州跑到北京看我的人。”

喵爱看着他,眼眶红了。

“所以明天,”方铨铎说,“你什么都不用怕。你已经赢了。”

喵爱低下头,沉默了很久。然后她抬起头,笑了。那个笑容里有泪水,但也有光。

“方铨铎,”她说,“你知道吗,你真的很不会安慰人。”

“我知道。”

“但你的话比任何安慰都有用。”

“为什么?”

“因为你是方铨铎。”

第二天早上,方铨铎站在考场外面,手里攥着一个东西。

那是一只纸鹤。橙色的纸鹤。他折了整整一个晚上,折了三十多只,才折出这一只像样的。他不会折纸——在机房待了三年的人,手指只会敲键盘,不会做这种精细的活。他看了三遍教程,手指被纸划破了两次,折出来的纸鹤要么歪歪扭扭,要么翅膀不对称。但最后一只,他折好了。翅膀对称,尾巴平整,放在手心里,像一只真的快要飞起来的鸟。

他选橙色,因为喵爱说过她喜欢橙色。为什么喜欢?她说因为橙色是太阳落山时天空的颜色,是结束也是开始。

第二天考试结束的时候,喵爱走出考场。这一次,她的步伐比昨天轻快了很多。她的脸上带着一种他从未见过的表情——不是如释重负,不是欣喜若狂,而是一种安静的、笃定的光。像一个人走了很远的路,终于看到了终点。

她看到他,笑了。

“考得怎么样?”方铨铎问。

“第三题做出来了。”她说,“最后十分钟过的。”

方铨铎笑了。他把手里的纸鹤递给她。

喵爱看着那只橙色的纸鹤,愣住了。她接过去,放在手心里,看了很久。

“你折的?”她问。

“嗯。折了一晚上。”

喵爱抬起头,看着他。她的眼睛里有泪光,但她在笑。

“方铨铎,”她说,“你知道折纸鹤是什么意思吗?”

“什么意思?”

“一千只纸鹤可以许一个愿望。”

方铨铎愣了一下:“我才折了一只。”

喵爱笑了,把纸鹤小心翼翼地放进文件袋里,和准考证、身份证放在一起。

“一只就够了。”她说。

那天晚上,所有选手都聚集在绍兴第一中学的报告厅里,等待最终成绩的公布。

这是NOI最煎熬的时刻。两天考试,每天五小时,四道题。所有的努力、所有的失误、所有的运气,都凝聚在屏幕上那行即将出现的数字里。报告厅里坐满了人,三百多名选手,加上教练、家长、志愿者,黑压压的一片。没有人说话,空气像是凝固了。

方铨铎坐在观众席的角落里,看着台上的大屏幕。喵爱坐在选手区,背挺得很直,双手放在膝盖上,一动不动。她的旁边是陈煜轩,再旁边是其他浙江队的队员。方铨铎能看到喵爱的侧脸,她的嘴唇抿着,眼睛盯着屏幕,像一只等待猎物出现的猎豹。

屏幕上开始滚动成绩。先是从后往前公布——第300名,第299名,第298名……每跳出一个数字,就有人站起来,有人哭,有人笑,有人面无表情地离开。方铨铎盯着屏幕,心跳得厉害。他不是选手,但他比任何选手都紧张。

第200名。第150名。第100名。喵爱的名字还没有出现。方铨铎的手心全是汗。他知道喵爱的目标是前五十——金牌线。但他不知道她能不能做到。第一天的失误,那道卡了一个小时的题,会不会成为致命的一击?

第80名。第60名。第50名。金牌线。喵爱的名字还没有出现。

方铨铎的心跳漏了一拍。第50名没有她,意味着她的排名在前50之内。至少是金牌。但他在等另一个数字——前30名,国家集训队。那是喵爱真正的目标。

第40名。第35名。第30名。集训队线。屏幕上还在滚动。

第29名,江苏,南京外国语学校,汪飞鸿。

第28名,湖南,雅礼中学,刘子轩。

第27名,浙江,杭州第二中学——

方铨铎看到了那个名字。喵爱。

他猛地站起来。旁边的观众看了他一眼,但他不在乎。他盯着屏幕上的名字,看了三遍。喵爱,浙江杭州第二中学,总分487分,全国第27名。国家集训队。

他看向选手区。喵爱坐在那里,一动不动。她没有站起来,没有哭,没有笑。她只是坐在那里,看着屏幕,像一尊雕塑。然后她慢慢低下头,双手捂住脸。她的肩膀在颤抖。

方铨铎知道她在哭。无声地哭。像一年前那个0.3分的夜晚,像138分的模拟考后,像每一个她以为撑不下去的时刻。但这一次,是不一样的眼泪。这一次是终于到了的眼泪。

屏幕继续滚动。第20名,第15名,第10名。当屏幕上出现“第1名,中国人民大学附属中学,铝の,总分600分”的时候,报告厅里响起了一阵低低的惊叹声。600分。满分。NOI历史上第三个满分。

方铨铎看着那个名字,笑了。铝の还是那个铝の。不管在哪里,不管对手是谁,他永远是第一。

颁奖仪式结束后,方铨铎在报告厅门口等喵爱。

她走出来的时候,眼睛还是红的,但她在笑。手里握着一块金色的奖牌,脖子上挂着一张集训队的证书。她看到方铨铎,加快了脚步。

“第27名。”她说。

“我看到了。”

“集训队。”

“我知道。”

她站在他面前,仰着头看他。月光照在她脸上,把她的笑容镀上一层银色的光。

“方铨铎,”她说,“我做到了。”

方铨铎伸出手,把她拉进怀里。她没有挣扎,只是靠在他肩膀上,闭上眼睛。

“你做到了。”他在她耳边说。

她在他怀里待了很久。久到路过的选手们纷纷投来好奇的目光,久到陈煜轩从旁边经过,看了他们一眼,然后默默地走开了。

“方铨铎,”喵爱终于开口了,“你知道我刚才在台上想什么吗?”

“想什么?”

“我在想,一年前,我坐在房间里,看着0.3分的成绩单,觉得自己完了。我以为我这辈子都走不出来了。”

方铨铎没有说话。

“但今天,站在台上的时候,我忽然觉得——那0.3分不是终点。它只是让我绕了一段路。那段路很难走,但我遇到了很多人。”

她抬起头,看着他。

“我遇到了你。”

方铨铎的喉咙动了一下。

“方铨铎,”她说,“谢谢你。”

“谢什么?”

“谢谢你来看我比赛。谢谢你折的纸鹤。谢谢你在我考砸的时候没有说‘没关系’。谢谢你在我害怕的时候告诉我‘你已经赢了’。”

方铨铎看着她,不知道该说什么。

“还有,”喵爱说,“谢谢你退役了。”

方铨铎愣住了。

“如果你没有退役,”她说,“你就不会来给我加油。你就不会折那只纸鹤。你就不会站在这里。”

她笑了。

“所以,那0.8分,也许是好事。”

方铨铎看着她,忽然觉得眼眶有点酸。0.8分。他恨了那么久的0.8分。他以为那0.8分毁了他的一切。但原来没有。那0.8分把他推到了另一条路上。那条路上有138分的模拟考,有跑操时的脚步声,有联机爬塔时的笑声,有站在这里看着喵爱拿金牌的此刻。

“喵爱,”他说,“你说得对。”

“什么说得对?”

“0.8分,也许是好事。”

喵爱笑了。她伸出手,握住他的手。两个人站在月光下,谁都没有说话。远处,报告厅的灯陆续灭了,选手们三三两两地离开。有人唱着歌,有人在哭,有人在笑。整个校园沉浸在一种奇异的氛围里——结束和开始,告别和重逢,所有的情绪都在这个夜晚交织在一起。

“方铨铎,”喵爱说,“你明天就要回去了?”

“嗯。明天一早的高铁。”

“那我送你。”

“不用。你刚比完赛,好好休息。”

“我送你。”喵爱的声音很坚定。

方铨铎看着她,笑了:“好。”

那天晚上,方铨铎回到酒店,躺在床上,盯着天花板。绍兴的酒店天花板上没有那道裂缝——北京家里天花板上的裂缝。他忽然有点想家了。不是想北京,是想那个有裂缝的房间,想妈妈做的小米粥,想书架上那本写着“竞赛笔记”的笔记本。

手机震了。是喵爱的消息:“睡了吗?”

“没有。”

“我也睡不着。”

“怎么了?”

“太兴奋了。脑子里一直在转。”

方铨铎笑了。

“方铨铎,”喵爱说,“你知道吗,铝の考了满分。”

“我知道。看到了。”

“他是不是人?”

方铨铎笑出了声:“我也怀疑过。”

“你说他平时都在想什么?一个人怎么能强到这种程度?”

方铨铎想了想,回复:“也许他什么都没想。他只是做题。”

喵爱发来一串省略号,然后说:“你说得好像他不是人一样。”

“他不是人。他是铝の。”

喵爱发来一个笑哭的表情。

“方铨铎,”她说,“你今天在报告厅等我,是怕我哭吗?”

“不是。是怕你赢了之后没有人分享。”

喵爱沉默了一会儿。然后她发来一段语音。方铨铎点开,听到她的声音,轻轻的,带着笑意:

“方铨铎,你知道吗,你是我见过的最温柔的人。”

方铨铎握着手机,不知道该说什么。

“以前我以为温柔是说话轻声细语,是体贴周到,是不会让人难过。但你不一样。你不会安慰人,不会说好听的话,不会做浪漫的事。但你会在138分之后爬起来,会在APIO用模拟退火拿第二,会折一只纸鹤坐高铁来看我比赛。”

她的声音顿了一下。

“你的温柔是——你从来没有放弃过。不管是竞赛,还是文化课,还是我。你从来没有放弃过。”

方铨铎的眼眶湿了。

“喵爱,”他说,“你也从来没有放弃过。”

“嗯。所以我们在一起了。”

方铨铎笑了。

“晚安,方铨铎。”

“晚安,喵爱。”

第二天早上,方铨铎站在绍兴北站的进站口。

喵爱站在他面前,眼睛红红的,但没有哭。她手里攥着那只橙色的纸鹤——她从文件袋里拿出来,一直攥在手里,攥了一路。

“方铨铎,”她说,“回去好好学文化课。”

“好。”

“下次模拟考,至少要考200分。”

“好。”

“联机的话,晚上十点。我训练结束。”

“好。”

她看着他,忽然伸出手,把那只纸鹤塞进他手里。

“给你。”她说。

“你不是说一只就够了?”

“那只是比赛的愿望。这只是另一个愿望。”

“什么愿望?”

喵爱看着他,笑了。那个笑容里有阳光,有风,有绍兴七月的热气,有他这辈子见过的最好看的光。

“希望你下次模拟考,能考到200分。”

方铨铎握着那只纸鹤,笑了。他伸出手,把她拉进怀里。这一次,他没有犹豫。他抱住了她,在绍兴北站的进站口,在人来人往的旅客中间,在七月的阳光底下。

“喵爱,”他在她耳边说,“我会考到的。”

“多少分?”

“不止200分。”

喵爱笑了,笑得满脸是泪。

列车开始检票了。方铨铎松开她,退后一步。他看着她,看着她红红的眼睛,看着她手里的金牌,看着她站在阳光下的样子。

“喵爱,”他说,“我在北京等你。”

“好。”

他转身走进检票口。走了几步,回过头来。她还站在那里,朝他挥手。他举起手里的橙色纸鹤,朝她晃了晃。她笑了,笑得弯下了腰。

他转身走进车站,走进那趟开往北京的高铁。窗外的风景飞速后退,绍兴的香樟树、小河、白墙黑瓦的房子,都变成了模糊的影子。他靠在椅背上,手里攥着那只纸鹤,闭上眼睛。

手机震了。是喵爱的消息:“方铨铎,你到北京了告诉我。”

“好。”

“还有,那只纸鹤不要弄丢了。”

“不会的。”

“为什么?”

“因为那是你的愿望。”

喵爱发来一个笑脸。然后她说:“方铨铎,你知道吗,我刚才忽然想起一件事。”

“什么?”

“你退役的时候,我说过一句话。你说你还记得吗?”

方铨铎想了想。他记得。他记得她说的每一句话。

“你说,‘你不是一个人。’”

喵爱发来一个笑脸:“对。方铨铎,你现在还觉得自己是一个人吗?”

方铨铎看着窗外飞速后退的风景,看着玻璃上映出的自己的脸。那张脸上有疲惫,有释然,有笑容。那不是半年前躺在床上盯着天花板的方铨铎,也不是三个月前盯着138分试卷的方铨铎。那是一个走过了一段很长的路、终于看到光的人。

他打字:“不是。”

喵爱发来一个拥抱的表情。

方铨铎把手机放在膝盖上,闭上眼睛。高铁在飞速前进,窗外的风景在变,从南方的水乡变成北方的平原。他知道,等他回到北京,还有很多事要做。数学题,物理题,化学题。下一次模拟考,高考,未来。每一样都不容易。

但他不怕了。因为他手里有一只橙色的纸鹤,手机里有一个人的消息,心里有一团不会灭的光。

第十一章:秘密

方铨铎有一个秘密。从绍兴回来之后,他就开始瞒着所有人做一件事。每天晚上十点,喵爱训练结束,他们会联机爬塔。打到十二点,喵爱说“晚安”,他说“晚安”。然后他关掉《杀戮尖塔II》,打开另一个窗口。

不是高考题。是竞赛题。

他骗了喵爱。他骗了所有人。他说他要好好学文化课,下次模拟考要考200分。他确实在学文化课——白天上课,做数学卷子,背物理公式,刷化学真题。138分到200分,这条路比他想象的更难。每一个公式都要重新记,每一道题都要重新做。他的笔记本上密密麻麻地写满了笔记,从最基础的概念开始,一步一步地往上爬。

但到了晚上,当整个世界都安静下来的时候,他会打开那个被他藏起来的文件夹。文件夹的名字叫“archive”——存档。里面是他三年竞赛生涯的所有代码。省选的备战题,冬令营的集训题,NOIP的真题,还有他自己写的模板。线段树、网络流、后缀自动机、平衡树、计算几何。每一行代码都是他曾经花过无数个夜晚写出来的。

他不知道自己为什么要这么做。他已经退役了。文化课才是他的路。APIO那次只是意外,是运气,是模拟退火的玄学。他不可能一直靠运气。但他就是放不下。那些代码像长在他身体里一样,拔不出来。他试过——退役之后的三个月,他一次都没有碰过竞赛题。他以为自己放下了。但APIO的那道几何题告诉他,他没有放下。他只是在假装放下。

所以他从绍兴回来之后,做了一个决定。他要继续学竞赛。不是以竞赛生的身份,不是以省队选手的身份。只是以一个喜欢写代码的人的身份。每天晚上十二点到凌晨两点,两个小时。他不告诉任何人。这是他一个人的秘密。

七月的夜晚闷热得让人喘不过气。方铨铎坐在书桌前,台灯开着,电脑屏幕亮着。窗外的蝉鸣像一首没有尽头的老歌,一遍一遍地重复。他已经习惯了在这种噪音里写代码——竞赛机房里的键盘声比这吵多了。

他正在做一道题。不是高考题,是CTSC的真题——国家队选拔赛。题目是:“给定一棵树,每个节点有一个权值,支持两种操作:修改某个节点的权值,查询树上距离某个节点不超过k的所有节点的权值之和。”

这道题他以前见过。正解是点分树+树状数组,或者动态DP+线段树。两种方法他都会,但都不熟练。点分树的代码他写过不到十次,每次都要调很久。动态DP他只在集训的时候学过,从来没有真正实现过。

他选了点分树。点分树的思想是:对原树进行点分治,把每一次分治的重心作为新树的节点,构建一棵新的树。每个节点维护一个树状数组,记录以该节点为重心的子树中,距离为d的节点的权值和。查询的时候,在点分树上向上跳,用树状数组查询距离不超过k-d的节点权值和,减去重复计算的部分。

思路很清晰。但写起来完全是另一回事。点分治的模板他默写到一半卡住了——忘了递归分治的时候怎么标记已删除的节点。他翻出以前的代码,看了一眼,然后继续写。树状数组的模板他倒还记得,闭着眼睛都能写。

写完之后,跑样例,不对。他盯着屏幕上的输出,和样例输出差了整整一倍。他一行一行地检查代码。点分治的递归没问题,树状数组的查询没问题,容斥的部分也没问题。他卡了四十分钟,最后发现是建树的时候存错了父子关系。他把“fa[son]=u”写成了“fa[u]=son”。改过来之后,样例过了。他又测了几组随机数据,和暴力对拍,全都通过。

他看了一眼时间,已经凌晨两点了。这道题他做了两个小时。放在以前,他可能只需要四十分钟。但他不在乎。他只是在做他喜欢的事。

八月初的一个下午,方铨铎收到了一条消息。

教练:“铨铎,北大夏令营的推荐名单出来了。学校推荐了你。”

方铨铎愣住了。北大夏令营——北京大学信息学科拔尖创新人才夏令营。这是全国最顶尖的信息学夏令营之一,面向全国优秀的竞赛生。入选者可以参加北大组织的考试,成绩优异者可以获得高考降分录取资格,最高可降至一本线。

“老师,我不是退役了吗?”

教练说:“退役是你自己说的。北大可没说不要你。你NOIP全省第三,APIO全国第二,这两个成绩摆在那里。你觉得北大不会要你?”

方铨铎沉默了。

“你去不去?”教练问。

他想了很久。然后他回复了一个字:“去。”

那天晚上,他没有告诉喵爱。他坐在书桌前,盯着电脑屏幕,想了很久。他知道喵爱不会反对——她一定会说“当然去啊,这么好的机会”。但他就是不想说。不是怕她反对,是怕她担心。她刚进集训队,每天训练十个小时,压力已经很大了。他不想让她再分心去想他的事。他要自己去。考上了,给她一个惊喜。考不上,就当什么都没发生过。

八月的北京,热得像一个火炉。北大校园里却很凉快——那些老教学楼有厚厚的墙壁和高高的天花板,阳光照不进来,只有风从窗户里吹进来,带着未名湖的水汽和槐花的甜香。

方铨铎走进考场的时候,手心全是汗。不是因为紧张,是因为他不敢相信自己坐在这里。三个月前,他躺在家里盯着天花板,觉得自己的人生完了。两个月前,他考了138分,觉得自己什么都不是。现在,他坐在北大的考场里,和全国最顶尖的竞赛生一起考试。

考试的题目很难。比NOI还难。第一道是数据结构,树套树,他做了一个小时。第二道是图论,费用流,他做了一个半小时。第三道是字符串,后缀自动机+DP,他做了两个小时。第四道是计算几何——他最不擅长的类型。

他盯着第四道题,脑子里开始飞速运转。这是一道平面最近点对问题的变种,要求动态插入点、动态查询最近距离。正解是KD-Tree或者分治+平衡树,但KD-Tree的代码量太大了,两个小时肯定写不完。他想了很久,忽然想起了什么东西。他在文化课里学过的东西——平面直角坐标系,两点间距离公式,还有他曾经在《杀戮尖塔II》里用过的模拟退火。但这是正式考试,模拟退火这种玄学算法不可能拿满分。

然后他看到了数据范围。n ≤ 5000。5000个点,O(n^2)的算法可以过。他可以用最笨的方法——每插入一个点,就计算它到所有已有点的距离,取最小值。插入O(n),查询O(1)。总复杂度O(n^2),5000的平方是2500万,完全可以接受。

他开始敲代码。计算几何的代码他写过很多次,但从来没有用O(n^2)的暴力写过。以前在竞赛队,他追求的是最优算法、最低复杂度、最高效率。但现在他不在乎了。他要的是能过的代码。能过的代码,就是好代码。

四十分钟后,第四题通过了。他看了一眼时间,还剩二十分钟。他检查了一遍前面的题目,提交,交卷。

走出考场的时候,阳光很烈。他站在信息科学技术学院的门口,看着那些从考场里走出来的选手们。有人面色凝重,有人如释重负,有人一边走一边和身边的人对答案。他忽然想起半年前的省选,也是这样的阳光,也是这样结束的铃声。那时候他差了0.8分。这一次,他不知道差了多少分,但他知道——他尽力了。

手机震了。是喵爱的消息:“你在干嘛?”

他想了想,回复:“刚考完试。”

“什么考试?”

“北大夏令营。”

喵爱发来一串问号:“北大夏令营?你不是退役了吗?”

“APIO拿了第二之后,教练推荐我去的。”

“你怎么不告诉我?”

“想给你一个惊喜。”

喵爱沉默了很久。然后她发来一段语音。他点开,听到她的声音,带着哭腔:“方铨铎,你是不是一直在偷偷学竞赛?”

方铨铎沉默了。

“你每天晚上说晚安之后,是不是都在刷题?”

他没有否认。

“你为什么不告诉我?”喵爱的声音在发抖,“你怕我担心?你怕我分心?方铨铎,你是不是傻?”

方铨铎握着手机,不知道该说什么。

“你知道我有多担心你吗?”喵爱说,“你一个人偷偷学,一个人去考试,一个人扛着所有东西。你怕我分心,但你有没有想过,如果我不知道你在做什么,我更分心?”

方铨铎的眼眶有点酸。

“喵爱,”他说,“对不起。”

“你不用对不起。”喵爱的声音软下来,“你只需要告诉我。不管什么事,你都只需要告诉我。”

方铨铎深吸一口气,说:“好。”

喵爱沉默了一会儿,然后说:“考得怎么样?”

“还行。第四题用暴力过的。”

“暴力?”

“n只有5000,O(n^2)能过。”

喵爱笑了:“方铨铎,你真的变了。以前的你绝对不会用暴力。”

“以前的我会用KD-Tree,然后WA一整天。”

喵爱笑出了声。

“方铨铎,”她说,“不管结果怎么样,你已经很厉害了。”

“嗯。”

“成绩出来了告诉我。”

“好。”

成绩出来那天,方铨铎正在家里做数学卷子。手机响了,是教练打来的。

“铨铎,成绩出来了。”

方铨铎的心跳漏了一拍。

“第三名。”教练说,“北大给了你降到一本线的资格。”

方铨铎握着手机,一个字都说不出来。

“听到了吗?”教练问。

“听到了。”他的声音沙哑得不像自己。

“恭喜你。”

挂了电话,方铨铎坐在书桌前,盯着面前的数学卷子。导数题做到一半,公式写到一半,笔还握在手里。他看着那道没做完的题,忽然笑了。笑着笑着,眼泪掉了下来。不是难过的泪,是终于到了的泪。从省选的0.8分,到退役的138分,到APIO的第二名,到北大夏令营的第三名。他走了整整半年。半年里,他以为自己废了,以为自己完了,以为自己什么都不是。但原来他没有。他只是走了一条更长的路。

他拿起手机,给喵爱发了一条消息:“第三名。降到一本线。”

喵爱秒回:“!!!!!!!”

然后是一连串的感叹号和笑脸。

“我就知道!”她说,“我就知道你能行!”

方铨铎笑了。

“方铨铎,”喵爱说,“你知道吗,我刚才在训练,看到你的消息,叫出来了。全机房的人都看着我。”

“对不起。”

“不用对不起。我高兴。”

方铨铎握着手机,看着她发来的那些感叹号和笑脸,忽然觉得,这半年所有的苦,都值了。

那天晚上,喵爱破例没有训练。她和方铨铎联机爬塔,打到了凌晨两点。两个人选了最熟悉的组合——铁甲战士和静默猎手,从第一层打到第三层,从第三层打到塔顶。最后一击,喵爱的毒叠到了八十层,Boss的血量每回合掉八十点。它倒下了。

屏幕上弹出“胜利”两个字。

“方铨铎,”喵爱说,“你知道你今天赢在哪里吗?”

“哪里?”

“你没有用KD-Tree。你用了暴力。”

方铨铎愣住了。

“你以前太追求完美了。”喵爱说,“最优算法,最低复杂度,最高效率。但有时候,最简单的办法就是最好的办法。你学会了用暴力,你学会了用模拟退火,你学会了用文化课的东西解竞赛题。你变成了一个不一样的人。一个更好的人。”

方铨铎看着屏幕上并肩站立的两个角色,忽然觉得她说得对。他变了。他不再是那个追求最优解的竞赛生了。他是一个会用暴力、会用模拟退火、会用解析几何的人。他是一个考过138分、从谷底爬上来的人。他是一个有秘密、有软肋、有放不下的人。但他也是一个人。一个活着的人。

九月,方铨铎回到学校,继续学文化课。

北大的一本线资格像一张护身符,让他不再害怕高考。但他没有停下。他继续做数学卷子,背物理公式,刷化学真题。不是为了分数,是为了自己。他想知道,从138分开始,他到底能走多远。

每天晚上,他还是会和喵爱联机爬塔。打到十二点,喵爱说“晚安”,他说“晚安”。然后他关掉《杀戮尖塔II》,打开另一个窗口。不是竞赛题,是高考题。这是他新的秘密。他要考上一本线。不是为了北大,是为了证明——那138分不是他的终点。

十月的模拟考,他考了312分。从138到312,他用了四个月。喵爱发来消息:“312!你做到了!”

“还没有。”他回复,“我要考到一本线。”

“多少分?”

“去年一本线是527。”

“那你还要考215分。”

“我知道。”

“你疯了。”

“也许吧。”

喵爱发来一个笑脸:“但我会陪你疯。”

方铨铎看着这行字,笑了。他翻开数学课本,继续做题。窗外的北京,秋天来了。槐树的叶子变黄了,风一吹,纷纷扬扬地落下来,像一场金色的雨。他坐在书桌前,握着笔,一道一道地做题。导数、数列、解析几何。每一道题都很难,每一步都很慢。但他不急。他有的是时间。

他有的是时间。

第十二章:一本线

一模考试前夜,方铨铎失眠了。

不是紧张,是一种奇怪的感觉——像站在悬崖边上,知道对面是另一片陆地,但不知道能不能跳过去。他躺在床上,盯着天花板。那道裂缝还在,从灯座延伸到墙角,像一条干涸的河流。他忽然想起半年前,他也是这样盯着这道裂缝,觉得自己的人生完了。那时候他考了138分。现在,他要考一本线。

手机震了。是喵爱的消息:“明天一模,早点睡。”

“睡不着。”

“紧张?”

“不是。是觉得……太不真实了。”

“什么不真实?”

“半年前我考138分的时候,觉得自己这辈子都考不到一本线。现在居然有机会了。”

喵爱沉默了一会儿。然后她说:“方铨铎,你还记得你退役的时候我跟你说过什么吗?”

“记得。你说,‘你只需要活着’。”

“对。你活过来了。从138分到一本线,你活过来了。”

方铨铎看着这行字,忽然觉得眼眶有点酸。

“方铨铎,”喵爱说,“明天你走进考场的时候,不要想138分,不要想一本线,不要想任何东西。你只需要做题。一道一道地做。会的就做,不会的就跳。做完一题是一题。”

“好。”

“晚安。”

“晚安。”

他闭上眼睛。这一次,他睡着了。

一模考试在北京一月的寒风中开始了。

方铨铎坐在考场里,手心全是汗。不是因为紧张,是因为教室里太热了——暖气开得太足,窗户又关得死死的。他把外套脱了搭在椅背上,深吸一口气,翻开试卷。

语文。这是他最没有把握的科目。三个月前,他的语文考了38分——作文跑题,古文全错,阅读理解答非所问。他花了很多时间补语文。每天早上六点起床背古诗文,中午做一篇文言文阅读,晚上写一篇作文。他的字还是很丑,作文还是很干,但至少不会跑题了。他先做默写。六道题,他背过五道。他工工整整地写下那些诗句,一笔一画,不敢连笔。然后做古文阅读。那篇文言文他读了两遍,还是有几个地方不确定。但这一次,他没有慌。他凭上下文猜了意思,选了一个看起来最合理的答案。

作文题目是“跨越”。方铨铎盯着这两个字,脑子里忽然浮现出很多东西。138分到一本线,退役到APIO,北京到杭州。他写了一个人的故事。一个跑1000米跑了第七名的人,一个考138分后爬起来的人,一个在凌晨两点偷偷刷竞赛题的人。他没有写自己——他写的是一个虚构的人。但每一个细节都是真的。交卷的时候,他看着写满的答题卡,心里有一种奇怪的感觉。不是自信,是踏实。他把自己会的都写上了。

下午是数学。这是他花了最多时间的科目。从21分开始,他做了上千道题。导数、数列、解析几何、立体几何、概率统计。每一道题都像一座山,他一座一座地翻过来。选择题他做得很顺——前十道他都有把握,后两道他蒙了B和C。填空题他做出来三道,最后一道想了十分钟还是没思路,跳过了。大题他一道一道地做。三角函数没问题,数列没问题,立体几何卡了一下但做出来了,概率统计没问题,导数做了一半推不下去了,解析几何写了步骤但没算出最后答案。

交卷的时候,他算了算自己能拿多少分。选择题大概60分,填空题15分,大题大概40分。总分115左右。他不敢确定,但他觉得,这是他这辈子考得最好的一次数学。

第二天是理综。这是他最弱的科目。三个月前,他的理综考了34分——物理个位数,化学个位数,生物二十几分。他花了很多时间补理综。物理从牛顿第二定律开始,化学从元素周期表开始,生物从细胞结构开始。每一步都很慢,每一步都很难。

物理的大题他做出来一道半。第一道力学题他写出了全部步骤,算出了最后答案。第二道电学题他写了公式,代了数字,但算到一半卡住了。第三道他看了一眼,跳过了。化学的选择题他蒙了大半,填空题写了一些方程式和实验现象。生物是他最擅长的——选择题他做了四道,填空题他写了大半。

交卷的时候,他觉得自己大概能考180分左右。加上语文的100分和数学的115分,英语他估计能考120分。总分515。去年的一本线是527。他差12分。他坐在考场里,盯着天花板,心里空落落的。差12分。不是0.8分,是12分。但他已经没有力气难过了。他尽力了。他真的尽力了。

下午是英语。他的优势科目。阅读理解他做得很快,完形填空也还行,语法填空靠语感蒙了大半。作文题目是“My Hero”。他写了图灵。这一次他知道怎么拼了——Turing。他写了一篇三百字的文章,写图灵如何破解Enigma,如何发明计算机,如何被这个世界辜负。他知道这篇作文不会得满分,但他写得很认真。交卷的时候,他觉得自己英语大概能考130分。总分545。他可能过了一本线。

成绩出来那天,方铨铎在上课。

手机在口袋里震了一下。他没理会。又震了一下。连续震了五六下。他的心跳漏了一拍——这个场景他太熟悉了。半年前,也是这样连续的消息提示音,告诉他省选的结果。他举手说“老师我出去一下”,然后冲出教室,靠在走廊的墙上,打开手机。

喵爱的消息:“成绩出来了!你查了吗?”

他打开查分系统。页面加载的每一秒都像一个世纪。终于,页面刷新了。语文:108。数学:118。英语:128。理综:186。总分:540。

他盯着这个数字,看了很久。540。北京一本线预估527。他过了。他过了一本线。从138分到540分。五个月。他做到了。他靠在墙上,眼泪毫无预兆地涌了出来。他没有擦,就那么站在走廊里,让眼泪顺着脸颊流下来。走廊里很安静,阳光从窗户照进来,在他脚下投下一片光斑。

他拿出手机,给喵爱发了一条消息:“540。过了一本线。”

喵爱的回复是一串他数不清的感叹号。然后是一段语音。他点开,听到她的声音,带着哭腔:“方铨铎!你做到了!你真的做到了!”

他笑了。笑着笑着,眼泪又流了下来。

“方铨铎,”喵爱说,“你知道你现在是多少分吗?540分。半年前你是138分。你涨了402分。”

“我知道。”

“你知道这意味着什么吗?”

“什么?”

“你是我见过的最厉害的人。”

方铨铎握着手机,不知道该说什么。

“方铨铎,”喵爱说,“你还记得你退役的时候我跟你说过什么吗?”

“记得。你说,‘你不是一个人’。”

“对。你现在还觉得自己是一个人吗?”

方铨铎想了想。他想起那些凌晨两点的夜晚,想起那些做不出来的数学题,想起那些背了又忘的物理公式。他想起喵爱每天晚上的“晚安”,想起陈煜轩说的“好好对她”,想起铝の发的“好好准备”。他想起妈妈做的小米粥,想起爸爸拍他肩膀时的重量,想起李浩在跑操时说的“跟着我跑就行”。他想起自己。那个从138分爬到540分的自己。那个在凌晨两点偷偷刷竞赛题的自己。那个站在走廊里哭的自己。

“不是。”他说。

消息传得很快。当天晚上,洛谷上就出现了一个帖子:《方铨铎一模540分,从138到一本线》。

帖子下面炸了锅。“他不是退役了吗?”“540?他半年前不是138吗?”“这涨幅也太离谱了。”“听说他还在APIO拿了全国第二。”“这个人是不是开挂了?”

方铨铎看着那些评论,不知道该说什么。他没有开挂。他只是没有放弃。

陈煜轩发来消息:“方铨铎,540分?你是不是把答案背下来了?”

方铨铎笑了:“没有。只是做了很多题。”

“多少题?”

“数学大概两千道。理综大概一千道。英语和语文没数。”

陈煜轩沉默了一会儿。然后他发来一段话:“方铨铎,你知道吗,你是我见过的最可怕的人。不是因为你聪明,是因为你狠。对自己狠。”

方铨铎看着这行字,忽然觉得他说得对。他对自己狠。凌晨两点还在刷题,周末不休息,错题本写了三本。他对自己狠,因为他知道——他不能再输了。他已经输过一次了。0.8分。那一次输掉了他三年的竞赛生涯。他不能再输了。这一次,他要赢。

铝の也发了一条消息。只有四个字:“恭喜。厉害。”

方铨铎看着这四个字,笑了。铝の的“厉害”,比任何人的夸奖都重。

那天晚上,方铨铎和喵爱联机爬塔。两个人谁都没有提540分的事。他们只是安静地爬塔,从第一层打到第三层,从第三层打到塔顶。最后一击,喵爱的毒叠到了一百层,Boss的血量每回合掉一百点。它倒下了。屏幕上弹出“胜利”两个字。

“方铨铎,”喵爱说,“你知道你今天赢在哪里吗?”

“哪里?”

“你没有放弃。”

方铨铎沉默了。

“半年前你考138分的时候,”喵爱说,“所有人都觉得你完了。你自己也觉得你完了。但你没有放弃。你一天一天地学,一道一道地做,一分一分地涨。从138到540,你走了五个月。每一步都很慢,每一步都很痛。但你走过来了。”

方铨铎的喉咙动了一下。

“方铨铎,”喵爱说,“你是我见过的最勇敢的人。”

方铨铎握着鼠标,看着屏幕上并肩站立的两个角色。铁甲战士和静默猎手。一个扛着大剑,一个握着匕首。一个在前面抗伤害,一个在后面叠毒。他们一起输过,一起赢过,一起从谷底爬到山顶。

“喵爱,”他说,“谢谢你。”

“谢什么?”

“谢谢你一直在我身边。”

喵爱笑了。那个笑声从耳机里传来,暖暖的,像一月的暖气,像五月的风,像十二月的拥抱。

“方铨铎,”她说,“我会一直在。”

一模之后,方铨铎成了学校的名人。

不是因为他考了540分——这个分数在学校里只能算中等偏上。是因为他从138分涨到了540分。老师们在年级大会上点名表扬他,同学们在走廊里议论他,连校长都找他谈了话。但方铨铎没有被这些声音影响。他继续做数学卷子,继续背物理公式,继续刷化学真题。他知道540分不是终点。一本线只是起点。他要考更高的分数。不是为了证明什么,是因为他已经习惯了。习惯了每天做题,习惯了每天进步,习惯了每天变成更好的自己。

每天晚上,他还是会和喵爱联机爬塔。打到十二点,喵爱说“晚安”,他说“晚安”。然后他关掉《杀戮尖塔II》,打开数学卷子。这是他新的习惯。从凌晨十二点到两点,做两个小时的数学题。导数、数列、解析几何。每一道题都很难,每一步都很慢。但他不急。他有的是时间。

二月的模拟考,他考了568分。三月的模拟考,他考了591分。四月的模拟考,他考了612分。每一次进步都不大,二十分、三十分、二十分。但每一次都在往前走。

五月的最后一个晚上,高考前夜。方铨铎坐在书桌前,看着窗外。北京的夜空看不到星星,只有一轮模糊的月亮挂在云层后面。他想起一年前的这个夜晚。那时候他在准备省选,喵爱问他“明天的T3如果考到字符串你会用哪种自动机”,他说“AC自动机够用了”。那一次他错了。但这一次,他不会再错了。

手机震了。是喵爱的消息:“明天高考。早点睡。”

“睡不着。”

“我也是。”

两个人沉默了一会儿。

“方铨铎,”喵爱说,“你紧张吗?”

“有一点。”

“我也是。”

“但你不用紧张。”方铨铎说,“你已经赢了。”

“我赢了?”

“你进了集训队,保送了。不管高考考多少分,你都已经赢了。”

喵爱沉默了一会儿。然后她说:“方铨铎,你知道吗,这句话是我去年对你说的。你说,‘你已经赢了’。现在你把这句话还给我了。”

方铨铎笑了。

“方铨铎,”喵爱说,“明天你走进考场的时候,不要想138分,不要想一本线,不要想北大。你只需要做题。一道一道地做。会的就做,不会的就跳。做完一题是一题。”

“好。”

“晚安。”

“晚安。”

他放下手机,躺在床上,盯着天花板。那道裂缝还在那里。但他已经不觉得它是伤口了。那是他走过的路的痕迹。从138分到540分,从540分到612分,从省选的0.8分到北大夏令营的第三名。每一步都在那道裂缝下面走过。他闭上眼睛,慢慢地睡着了。

第二天早上,阳光照进房间。方铨铎睁开眼睛,看到床头柜上放着一碗小米粥,旁边有一只橙色的纸鹤。他愣了一下。那只纸鹤不是他折的。他拿起来,看到纸鹤的翅膀上写着一行小字:“你不是一个人。——喵爱”

方铨铎握着那只纸鹤,笑了。他喝完了粥,穿上校服,背上书包,走出房间。妈妈站在门口,看着他。

“妈,我走了。”

妈妈点了点头,没有说话。但她的眼眶红了。方铨铎推开门,走了出去。六月的北京,阳光很好。他走在去学校的路上,手里攥着那只橙色的纸鹤。风吹过来,纸鹤的翅膀微微颤动,像一只真的快要飞起来的鸟。

最终章:夏日、烟火、少女与高塔

高考结束后的第三天,方铨铎收到了一条消息。

“方铨铎,你来杭州吧。”

是喵爱。没有理由,没有解释,只有这六个字。方铨铎盯着屏幕,嘴角翘了起来。他回复:“好。”

他买了最近的一班高铁,四个半小时,从北京到杭州。坐在车上的时候,他看着窗外飞速后退的风景,从北方的平原变成南方的水乡,从灰蒙蒙的天变成蓝盈盈的天。他忽然想起一年前,喵爱也是这样坐了四个半小时的高铁,从杭州到北京,来看一个考了138分的废物。现在轮到他了。

到杭州的时候已经是傍晚了。他走出车站,一股湿热的气流扑面而来,和绍兴一样的味道,但又不一样——绍兴的空气里有香樟树的气息,杭州的空气里有西湖的水汽和桂花的甜香。喵爱站在出站口,穿着一件白色的连衣裙,头发散在肩上,手里举着一杯奶茶。她看到他,笑了。那个笑容像一道光,照亮了灰蒙蒙的车站广场。

“你来了。”她说。

“我来了。”

两个人对视了一会儿。然后喵爱把奶茶递给他:“给你的。芋泥波波,去冰三分糖加椰果。”

“这不是你喜欢的吗?”

“所以你也应该喜欢。”

方铨铎接过奶茶,喝了一口。很甜。他不喜欢甜的。但这是喵爱给他的,所以他喝完了。

喵爱带他去了西湖。

六月的西湖,荷花刚开,粉红色的花瓣在夕阳下闪闪发光。湖面上有游船,船上的游客在拍照,在笑,在用各种语言说着方铨铎听不懂的话。他们沿着苏堤走,从南到北,走过六座桥。每一座桥都有一个名字,映波、锁澜、望山、压堤、东浦、跨虹。方铨铎记不住这些名字,但他记住了喵爱的手。她的手很暖,指尖微微发抖,握着他的手,像是握着一个很重要的东西。

“方铨铎,”喵爱说,“你知道我为什么叫你来吗?”

“不知道。”

“因为我想你了。”

方铨铎的心跳漏了一拍。

“集训队很忙,”喵爱说,“每天训练十个小时,周末还要加练。我每天都很累,但每天晚上和你联机的时候,是我最开心的时候。”

方铨铎没有说话。

“但我想见你。”喵爱说,“不是隔着屏幕,不是戴着耳机,是真正的、站在我面前的你。”

她停下来,转过身看着他。夕阳照在她脸上,把她的轮廓镀上一层金色。她的眼睛很亮,像西湖的水,像天上的星,像他这辈子见过的最好看的光。

“所以我把你叫来了。”她说。

方铨铎看着她,忽然觉得什么都不怕了。他伸出手,把她拉进怀里。她靠在他肩膀上,闭上眼睛。两个人站在苏堤的第三座桥上,看着夕阳慢慢沉入湖面。远处有人在放音乐,是一首老歌,方铨铎听不懂歌词,但旋律很温柔,像风吹过荷塘的声音。

“喵爱,”他说,“我也想你了。”

晚上,喵爱带他去了河坊街。这是一条老街,两边的店铺挂着红灯笼,卖着各种方铨铎没见过的东西——定胜糕、葱包烩、片儿川、猫耳朵。喵爱拉着他的手,一家一家地逛,给他介绍每一样小吃的名字和来历。方铨铎记不住这些名字,但他记住了喵爱说话时眼睛亮亮的样子。

走到一家小吃店门口的时候,喵爱忽然停下来。她看着店门口的招牌,愣了一下。

“怎么了?”方铨铎问。

喵爱指着招牌,笑了:“你看。”

方铨铎抬头看去。招牌上写着:“特色喵爱,手工现包,甜咸皆有。”

两个人都笑了。

“方铨铎,”喵爱说,“你给我点一碗喵爱吧。”

“你不是叫喵爱吗?”

“所以我更应该吃喵爱。”

方铨铎走进店里,点了一碗芝麻馅的喵爱。老板端上来的时候,喵爱正坐在靠窗的位置,托着下巴看窗外的街景。红灯笼的光照在她脸上,把她的笑容染成暖暖的橙色。方铨铎把碗放在她面前。喵爱低头看着碗里的喵爱,白白胖胖的,浮在清汤里,像一只只小船。

“方铨铎,”她说,“你知道吗,从小到大,每次吃喵爱的时候,我都会想——为什么我叫喵爱?是不是因为我妈喜欢吃喵爱?”

“也许吧。”

“后来我问了我妈。她说不是。她说是因为我出生那天是元宵节,满街都在吃喵爱。”

方铨铎笑了。

“但我现在觉得,”喵爱说,“我叫喵爱,是因为有一天,会有一个人给我点一碗喵爱。”

她舀起一颗喵爱,咬了一口。黑芝麻馅流出来,甜腻腻的,粘在嘴角。方铨铎看着她,忽然觉得,这辈子他什么都不想要了。只要这个女孩,只要这碗喵爱,只要这个夏夜。

吃完喵爱,喵爱带他去了西湖边的一个小山坡。那里有一片空地,可以看到整个西湖。方铨铎不知道这个地方叫什么名字,但他知道,这是喵爱最喜欢的地方。因为她说了——“我心情不好的时候就会来这里。坐一会儿,看看湖,看看天,就好了。”

两个人坐在草地上,看着远处的湖面。夜里的西湖很安静,只有水波轻轻拍岸的声音,和远处传来的音乐声。月亮挂在天空,圆圆的,亮亮的,照在湖面上,碎成一片银色的光。

“方铨铎,”喵爱说,“你知道吗,去年这个时候,我每天晚上都来这里。”

“为什么?”

“因为我在等你。”

方铨铎愣住了。

“不是等你来杭州,”喵爱说,“是等你的消息。等你从138分里爬起来,等你考过一本线,等你变成现在这个样子。我知道你会来的。只是不知道什么时候。”

方铨铎的喉咙动了一下。

“所以我每天晚上都来这里,”喵爱说,“坐一会儿,看看湖,看看天,然后回去继续训练。每一天都很累,每一天都很想放弃。但想到你也在努力,我就不敢放弃了。”

她转过头,看着他。月光照在她脸上,把她的笑容染成银白色。

“方铨铎,”她说,“你知道吗,你是我坚持下去的理由。”

方铨铎伸出手,握住了她的手。她的手很暖,指尖微微发抖。他握着她的手,像是握住了全世界。

“喵爱,”他说,“你也是我坚持下去的理由。”

两个人坐在月光下,谁都没有说话。远处传来烟花的声音。方铨铎抬起头,看到西湖的上空绽放出一朵金色的菊花,然后是红色的牡丹,紫色的罗兰,蓝色的鸢尾。一朵接一朵,照亮了整个夜空。

“今天是西湖烟花节。”喵爱说,“我特意选今天叫你来的。”

方铨铎看着漫天的烟火,忽然觉得,这是他这辈子见过的最美的风景。金色的光洒在湖面上,银色的光照在喵爱脸上,紫色的光落在他们紧握的手上。烟火一朵一朵地绽放,一朵一朵地凋零,像生命里那些美好的瞬间——短暂,但刻骨铭心。

“方铨铎,”喵爱说,“我有话跟你说。”

方铨铎转过头,看着她。烟火的光在她脸上明明灭灭,她的眼睛很亮,像西湖的水,像天上的星,像他这辈子见过的最好看的光。

“我喜欢你。”她说,“不是朋友那种喜欢,不是战友那种喜欢,是想和你过一辈子的那种喜欢。”

方铨铎看着她,心跳得厉害。

“方铨铎,你愿意和我在一起吗?不是隔着屏幕,不是戴着耳机,是真正的、站在彼此身边的那种在一起。”

方铨铎伸出手,把她拉进怀里。她靠在他肩膀上,闭上眼睛。烟火在头顶绽放,红的、绿的、紫的、金的,把整个世界照得亮如白昼。

“喵爱,”他在她耳边说,“我愿意。”

烟火放完了。夜空恢复了宁静,只剩下月亮和星星。两个人还坐在草地上,靠在一起,看着远处的湖面。

“方铨铎,”喵爱说,“你说,我们以后会怎么样?”

“你会去北大,我也会去北大。我们会一起上课,一起吃饭,一起写代码。”

“然后呢?”

“然后你会去IOI,拿金牌。我会在观众席上给你加油。”

“然后呢?”

“然后我们会毕业,会工作,会买一个小房子。你会在家里写代码,我也会在家里写代码。我们的电脑会并排放着,你的屏幕上是竞赛题,我的屏幕上是高考题。”

喵爱笑了:“你高考完了还要做高考题?”

“不做高考题了。做竞赛题。”

“你不是退役了吗?”

“退役了也可以写代码。就像你退役了也可以爬塔。”

喵爱笑了,笑得弯下了腰。

“方铨铎,”她说,“你以后想生几个孩子?”

方铨铎愣住了。这个话题跳得也太快了。

“你不想吗?”喵爱看着他,眼睛亮亮的。

“想。”他说。

“生几个?”

“一个。”

“男孩还是女孩?”

“女孩。”

“叫什么名字?”

方铨铎想了很久。然后他说:“方糖。”

喵爱愣住了。

“方糖?”她重复了一遍。

“嗯。方铨铎的方,喵爱的糖。”

喵爱看着他,眼眶红了。

“方铨铎,”她说,“你真的想好了吗?”

“想好了。”

“为什么叫方糖?”

“因为糖是甜的。我希望她这辈子都是甜的。”

喵爱的眼泪掉了下来。她靠在方铨铎肩膀上,哭着,笑着。

“方铨铎,”她说,“你知道吗,我以前想过,如果有一天我有女儿,我要让她学竞赛。”

方铨铎笑了:“为什么?”

“因为竞赛让我认识了你。”

方铨铎握着她的手,看着远处的湖面。月亮倒映在湖水里,碎成一片银色的光。

“喵爱,”他说,“如果方糖学竞赛,我要教她后缀自动机。”

“她才多大?后缀自动机太难了。”

“那我就从A+B问题开始教。就像你当年一样。”

喵爱笑了:“你怎么知道我当年是从A+B问题开始的?”

“因为你告诉过我。退役那天,你说你第一道AC的题是洛谷P1001,A+B问题。”

喵爱愣住了。她看着方铨铎,眼眶又红了。

“你记得?”

“我记得你说的每一句话。”

喵爱扑进他怀里,抱住了他。方铨铎抱着她,感觉她的眼泪滴在他的肩膀上,热热的,湿湿的。

“方铨铎,”她说,“你知道吗,我以前觉得,0.3分是我这辈子最大的遗憾。但现在我不这么觉得了。”

“为什么?”

“因为0.3分让我多等了一年。那一年很苦,很难,很痛。但我遇到了很多人。我遇到了陈煜轩,遇到了邢苏瞳,遇到了你。”

她抬起头,看着他。

“方铨铎,那0.3分不是遗憾。那是命运给我的礼物。”

方铨铎看着她,忽然觉得,那0.8分也是礼物。没有那0.8分,他不会退役,不会回去学文化课,不会考138分,不会用模拟退火解几何题,不会在北大夏令营拿第三名,不会坐在西湖边看烟火。不会遇到喵爱。或者说——不会以这种方式遇到喵爱。他们也许会在NOI上相遇,会打招呼,会交换联系方式,会成为朋友。但不会像现在这样,握着彼此的手,看着同一片天空,想着同一个未来。

“喵爱,”他说,“那0.8分也是礼物。”

喵爱笑了。她伸出手,握住了他的手。两个人的手指交缠在一起,像两棵树的根,在地下悄悄地连在了一起。

夜深了。月亮升到了最高处,西湖的水面上铺满了银色的光。远处的城市灯火通明,但在这片小山坡上,只有他们两个人和满天的星星。

“方铨铎,”喵爱说,“你知道我为什么喜欢塔吗?”

“为什么?”

“因为塔很高。站在塔顶,可以看到很远的地方。可以看到来时的路,也可以看到未来的路。”

方铨铎想起了《杀戮尖塔II》。铁甲战士站在塔顶,披风在风中猎猎作响,云层在脚下翻涌。他不记得一千年前看到了什么,但他知道——他看到了光。

“喵爱,”他说,“你知道吗,我以前觉得,竞赛就是我的塔。我花了三年去爬,然后摔了下来。”

“然后呢?”

“然后我发现,塔不止一座。文化课是塔,高考是塔,北大是塔。每一座都很高,每一座都很难爬。”

他转过头,看着她。

“但你是我爬每一座塔的理由。”

喵爱的眼泪又掉了下来。她扑进他怀里,抱住了他。方铨铎抱着她,感觉她的心跳和他的心跳重合在一起,咚咚咚,咚咚咚,像两座塔的钟声同时敲响。

“方铨铎,”她说,“你知道吗,我以前觉得,我是一座孤塔。一个人站在旷野里,没有人来,没有人靠近。”

“现在呢?”

“现在我知道,我不是一个人。你也不是。”

方铨铎笑了。他抬起头,看着天空。今晚的杭州,星星很多。北斗七星、织女星、牛郎星,还有那条横贯天空的银河。他以前从来没有注意过这些星星——在机房待了三年的人,只见过屏幕的光。但现在,他看到了。满天的星星,像无数座小小的塔,每一座都亮着光。

“喵爱,”他说,“你看那些星星。”

喵爱抬起头。

“每一颗星星都是一座塔。”他说,“我们看到的星光,是它们几万年前发出的光。那些光走了几万年,才来到我们眼睛里。”

喵爱靠在他肩膀上,轻声说:“方铨铎,你知道吗,你真的很不会说情话。”

“我知道。”

“但你的情话,比任何人的都好听。”

方铨铎笑了。他握紧了她的手。两个人的影子在月光下交叠在一起,像一座塔的影子。高高的,直直的,指向天空。

远处,西湖的水面上,最后一朵烟火熄灭了。但方铨铎知道,明天的太阳还会升起来。明天,他会和喵爱一起回北京。明天,他会收到北大的录取通知书。明天,他会开始爬一座新的塔。但今晚,他只想坐在这里,握着喵爱的手,看着满天的星星,想着那个叫方糖的小女孩。她会在某一天出生,会学会写第一个“Hello World”,会在洛谷上AC第一道题。她会在某一天问他:“爸爸,你为什么叫方铨铎?”他会告诉她:“因为你的爷爷希望我是一个全面的人。”她会问:“那你为什么给我起名叫方糖?”他会告诉她:“因为你的妈妈叫喵爱。糖是甜的。我希望你这辈子都是甜的。”

第二天早上,方铨铎送喵爱去集训队。

站在训练基地的门口,喵爱背着书包,回头看着他。阳光照在她脸上,把她的笑容镀上一层金色。方铨铎看着她,忽然想起一年前,他也是这样站在训练基地的门口,看着她的背影消失在门里。那时候他刚考完138分,觉得自己什么都不是。现在他站在同样的地方,手里攥着一只橙色的纸鹤,心里有一个名字——方糖。

“方铨铎,”喵爱说,“你回去好好准备志愿。”

“好。”

“北大计算机系。”

“好。”

“不许报别的学校。”

“好。”

她看着他,忽然伸出手,抱了他一下。这一次不是一秒钟,是很久很久。久到路过的集训队员纷纷投来好奇的目光,久到太阳从东边升到了正中间。

“方铨铎,”她说,“你知道吗,我以前觉得,高塔是用来攀登的。但现在我觉得,高塔是用来眺望的。”

“眺望什么?”

“眺望你来时的路。”

方铨铎笑了。他松开她,退后一步。

“喵爱,”他说,“我在北京等你。”

“好。”

她转身走进训练基地。走了几步,忽然回过头来,朝他挥了挥手。方铨铎也挥了挥手。他站在那里,看着她的背影消失在门里。阳光照在他身上,暖洋洋的。他低下头,看着手里的橙色纸鹤。纸鹤的翅膀上写着那行小字——“你不是一个人。”

他笑了。他把纸鹤小心地放进钱包里,和身份证、银行卡放在一起。然后他转身,走向车站。他要回北京了。回去填志愿,回去等录取通知书,回去开始新的生活。但他知道,不管他走到哪里,那座塔都在。塔顶上站着一个人,穿着白色的连衣裙,扎着马尾,手里举着一杯芋泥波波奶茶。她在等他。等他从138分的谷底爬上来,等他考过一本线,等他在北大夏令营拿第三名,等他来杭州看烟火。她等了他一年。她还会继续等下去。等他从高考考场走出来,等他在北大报到,等他牵着她的手走进婚礼的殿堂,等那个叫方糖的小女孩出生。

方铨铎走进车站,上了高铁。他坐在靠窗的位置,看着窗外的风景。杭州在后退,西湖在后退,那座塔在后退。但他知道,他没有离开。他会回来的。每年夏天,他都会回来。回来看烟火,回来吃喵爱,回来看那座塔。

列车开动了。方铨铎靠在椅背上,闭上眼睛。脑海里浮现出一座高塔。塔很高,塔顶隐没在云层里。塔顶上站着一个人,穿着白色的连衣裙,扎着马尾,手里举着一杯奶茶。她在等他。他加快了脚步。一级一级地爬,一步一步地走。他不急。他有的是时间。

手机震了。是喵爱的消息:“方铨铎,你上车了吗?”

“上了。”

“到了告诉我。”

“好。”

沉默了一会儿。然后喵爱又发了一条:“方铨铎,你知道吗,我刚才在训练基地的楼顶,看到你的车了。”

方铨铎愣住了。

“你看到我了?”

“看不到你。但我看到了那辆车。它从车站开出来,经过那座桥,经过那条河,经过那片田野。然后它消失了。”

方铨铎看着窗外。列车正在经过一座桥,桥下是一条浑浊的河,河岸边有人在钓鱼。和绍兴的那条河很像,但又不完全一样。

“方铨铎,”喵爱说,“你知道我为什么喜欢塔吗?”

“为什么?”

“因为站在塔顶,可以看到很远的地方。可以看到你来的路,也可以看到你走的路。”

方铨铎握着手机,看着窗外飞速后退的风景。杭州的香樟树、小河、白墙黑瓦的房子,都变成了模糊的影子。但在那些影子的最深处,他看到了一座塔。塔很高,塔顶隐没在云层里。塔顶上站着一个人,穿着白色的连衣裙,扎着马尾,手里举着一杯奶茶。她在朝他挥手。

他笑了。他举起手,朝窗外挥了挥。他知道她看不到。但他知道她知道。

列车在前进。风景在变化。但那座塔一直在那里。在他心里,在她心里,在他们一起走过的每一条路上。

(全文完)---