优选文学

第15章

更新时间:2026-06-29 18:27

海报是白纸黑字,贴在食堂门口那棵梧桐树上。

张辰端着搪瓷缸子去打饭,路过扫了一眼。海报不大,A4纸,手写毛笔字,墨迹被雨水洇花了几个笔画,边角用图钉按在树皮上,钉帽锈成暗红色。

"全国大学生计算机程序设计竞赛",标题下面一行小字:省级选拔赛,优胜者晋级北京总决赛。报名截止:10月25。

张辰舀了碗稀饭,米粒沉在缸底,稀得能照见人影。他端着缸子走到海报前,用勺柄挑开被风吹得贴在纸上的落叶,看清了比赛规则:三人一组,限时四小时,上机编程解题。

"看这个啥?" 郭昊端着两个馒头凑过来,嘴里塞得满满当当,"你又不缺奖状。"

"缺钱。" 张辰说,"冠军奖金一千。"

郭昊噎了一下,馒头渣喷到海报上,他慌忙用手去擦,越擦越花,墨迹洇成一片。

"一千?" 他瞪大眼,"够我吃一年红烧肉!"

"是奖金,不是饭票。" 张辰把海报从树上撕下来,折成四折,塞进口袋,"走,找人组队。"

"找谁?"

"沈幼微。"

郭昊挠挠平头:"她?经管系的?"

"辅修计算机。" 张辰往图书馆走,脚步快,"比你们系不少人强。"

图书馆三楼,计算机类图书区。沈幼微坐在靠窗的位置,阳光从北窗照进来,落在她面前的纸上,把她的影子投在桌面上,拉得很长。她手里攥着一支钢笔,正在抄什么,笔尖摩擦纸面,沙沙响。

张辰走到她桌边,没坐,站着,把海报拍在桌上。

"编程大赛。" 他说,"三人一组,缺一个。"

沈幼微抬起头,眼睛被阳光刺得眯了一下:"我?"

"你。"

"我不会编程。" 她说,"辅修才上了两节课,连循环语句都写不利索。"

"我教你。" 张辰说,"一周时间,够。"

沈幼微看着他,没立刻回答。她把手里的笔放下,笔杆磕在桌面上,发出轻响。阳光把她的手指照得透亮,指节纤细,但指肚上有层薄茧,是常年握笔磨出来的。

"为什么找我?" 她问,"计算机系那么多人。"

"他们不行。" 张辰说,"你行。"

"你凭什么觉得我行?"

"你整理字库的时候,两天背熟了全部编码规则。" 张辰说,"这不是聪明,是专注。编程比的不是聪明,是专注。"

沈幼微眼睛眨了一下,睫毛像两把小扇子上下一合。她低头看着桌上的海报,白纸黑字,被张辰折出几道痕,像张揉皱的脸。

"奖金怎么分?" 她问。

"三人平分。" 张辰说,"我三百三,郭昊三百三,你三百三。"

"如果我拖后腿呢?"

"你不会。" 张辰转身往楼梯口走,"明天下午,机房,17号机位。带上你的笔记本。"

他走了,脚步声在楼梯间回荡,铁制扶手被他的手掌蹭了一下,发出轻微的金属摩擦声。沈幼微坐在原地,看着他的背影消失在楼梯拐角,然后低头,把海报展开,抚平折痕,夹进《经济管理概论》的书页里。

第二天下午,机房。

17号机位,AST386,屏幕亮着,DOS黑底白字。郭昊坐在18号机位,手指头在键盘上戳来戳去,戳出一行拼音:"hongshaorou",候选栏跳出:1红烧肉。

"这个好。" 他嘿嘿乐。

"别玩了。" 张辰用笔杆敲敲他后脑勺,"过来。"

沈幼微站在门口,没进来。她今天换了件浅蓝色衬衫,袖子还是卷到小臂,底下是那条高腰牛仔裤,裤线熨得笔直。她手里抱着笔记本,牛皮纸封面,边角磨出毛边。

"进来。" 张辰没抬头,手指在键盘上飞舞,"坐19号机位。"

她坐下,椅子腿在水泥地上刮出刺耳声响。她把笔记本放在桌上,打开,第一页写着"C语言基础",下面密密麻麻记着笔记,字迹工整,一笔一划,像小学生写作业。

"今天讲动态规划。" 张辰说,"比赛必考。"

"什么是动态规划?" 郭昊问。

"把大问题拆成小问题,小问题 reuse,不重复算。" 张辰敲入几行代码,屏幕上一行行绿色字符往上滚,"比如斐波那契数列,普通递归算f(10)要算一百多次,动态规划只要算十次。"

郭昊眼睛发直:"啥?"

"举个例子。" 张辰从帆布包里掏出一张纸,纸上画着一个表格,"假设你有一块钱,可以买馒头、买咸菜、买烤红薯,价格分别是五分、两分、三分。问你有多少种买法,能把一块钱刚好花完?"

郭昊掰着手指头算,算了半天,手指头不够用了。

"别数了。" 张辰用笔尖点了点表格,"用动态规划,建一张表,一行一行填,最后格子里的数字就是答案。"

沈幼微没说话,她盯着那张表,眼睛一眨不眨。然后她从兜里摸出钢笔,在笔记本上开始画,一笔一划,表格的线条比张辰画的还直。

"你懂了吗?" 张辰问。

"懂了。" 她说,"就是填表。"

"对,填表。" 张辰说,"但表怎么填,有讲究。"

他花了两个小时,从斐波那契讲到背包问题,从背包问题讲到最长公共子序列。每讲一个,沈幼微就在笔记本上记一个,表格画了一张又一张,纸页被钢笔水洇得微微发皱。

郭昊听得昏昏欲睡,脑袋一点一点,像只啄米的鸡。张辰用笔杆敲他额头,他猛地抬头,嘴角还挂着口水印子。

"你嘛呢?" 张辰问。

"我听懂了。" 郭昊说,"就是填表嘛。"

"那你填一个。" 张辰把纸推过去,"背包问题,容量十,物品五件,重量分别是2、3、4、5、6,价值分别是3、4、5、6、7。问最大价值是多少?"

郭昊盯着那张纸,盯了三分钟,笔尖悬在半空,墨水洇出一个越来越大的黑点。

"我不会。" 他终于承认。

"看。" 张辰把纸拿回来,手指在表格上快速移动,"第一行,只考虑第一件物品,容量小于2的格子填0,大于等于2的填3。第二行,考虑前两件,容量小于3的还是0,容量3的填4,容量5的填7,因为3+4=7……"

他一路填下去,手指在纸面上移动得像在弹钢琴。填到最后一个格子,数字13。

"答案,13。" 他把纸推回去,"现在,你自己填一个。"

郭昊咬着笔杆,眉头拧成麻花,一笔一划地填。填错了三个格子,张辰用笔杆敲敲,他擦掉重填。填了二十分钟,最后答案对了,但过程惨不忍睹,表格歪歪扭扭,数字大小不一,像一群喝醉的蚂蚁在爬。

"行了。" 张辰说,"你去旁边练,练十遍。"

郭昊端着纸,挪到18号机位,埋头苦填。

张辰转向沈幼微:"你呢?"

她把笔记本推过来。纸上画着三张表格,每张都比张辰画的工整,线条笔直,数字清秀,排列整齐像印刷品。最后一张是背包问题的变形,她加了一个条件:每件物品最多选两次。

"这个……" 她指着最后一行,"我算了两遍,答案不一样。"

张辰看了一眼,指出问题:"选两次的时候,状态转移方程要改,不是从前一行取max,要从前两行取。"

"为什么?"

"因为选了一次之后,容量减少了,但还可以再选一次,所以要从'选了一次之后的状态'转移过来,而不是从'没选的状态'。" 张辰在纸上写下一行公式,"f[i][j] = max(f[i-1][j], f[i][j-w[i]] + v[i]),注意,这里是f[i],不是f[i-1]。"

沈幼微盯着那行公式,看了十秒。然后她低下头,在笔记本上重新画了一张表,按照张辰说的公式,一行一行填。填完,最后一个格子,数字18。

"对了。" 张辰说。

她没笑,但肩膀微微松了一下,像一绷紧的弦松了半圈。她把笔放下,指尖在纸面上轻轻蹭了蹭,把墨水蹭。

"还有吗?" 她问。

"贪心算法。" 张辰说,"明天讲。"

"今天不行吗?"

"今天你得消化。" 张辰把屏幕关掉,DOS光标一闪一闪,"动态规划吃透了,比赛一半的分就有了。"

沈幼微把笔记本合上,牛皮纸封面发出轻微的脆响。她站起来,把椅子推回原位,椅子腿在水泥地上刮出最后一声刺耳的响动。

"明天几点?" 她问。

"下午两点。" 张辰说,"带上今天的问题,有不懂的,先自己想,想不明白再问我。"

她点点头,转身走了。布鞋踩在地上,果然没声,但张辰看见她的马尾辫在身后晃了一下,比来的时候轻快了些。

郭昊从18号机位抬起头,满嘴念叨着"背包背包",像中了邪。

"张辰。" 他喊。

"嗯。"

"她真行?"

"行。" 张辰把软盘进软驱,咔哒一声,"比我预期的还快。"

"那我呢?"

"你?" 张辰瞥他一眼,"你负责扛奖杯。"

郭昊愣了一下,然后哈哈大笑,笑声在机房里回荡,震得灯管嗡嗡响。远处有人探头往这边看,张辰用笔杆敲敲桌子,郭昊连忙捂住嘴,闷乎乎的笑声压在喉咙里。

"回去吧。" 张辰说,"明天继续。"

两人走出机房,走廊声控灯坏了,摸黑下楼。郭昊跟在张辰身后,嘴里还在念叨"背包背包",像台卡带的录音机。

"张辰。" 他忽然停住。

"嗯。"

"如果赢了," 他说,"那一千块,我不要三百三。"

"你要多少?"

"两百就行。" 郭昊说,"剩下的,你和小微分。"

张辰脚步慢了一下,没回头:"为什么?"

"我啥也没,就填了几张表。" 郭昊说,"你们俩的活多。"

"三人一组,少了你,组不成。" 张辰说,"平均分,说好了。"

郭昊没再说话,但下楼的脚步声重了些,像鞋底沾了泥,但那泥是暖的。

宿舍楼门口,传达室灯还亮着,钱大爷的单田芳评书换成了三国演义,关羽过五关斩六将,唱腔沙哑。张辰路过,从窗户外往里看了一眼,钱大爷仰在椅子上,嘴角淌着口水,收音机天线歪在一边。

他摸出兜里那张海报,白纸黑字,折出几道痕。他展开,抚平,对着路灯的光看了一眼。

"全国大学生计算机程序设计竞赛"。

他把海报折好,塞回口袋,贴着大腿放好。塑料壳子贴着裤兜布料,凉丝丝的。

"一千块。" 他低声自语,音量低到只有自己能听见,"第一桶金,用来买服务器。"

他抬脚往宿舍楼走,脚步稳,像踩在实地上。身后,郭昊还在念叨"背包背包",声音越来越远,像只迷路的鸽子,飞进了夜色里。

字号 / 行高
主题