十年OI一场空

十年OI一场空 - 洛谷专栏

十年OI一场空

我最后一次站在机房里,是八月的一个傍晚。

落日从西窗斜斜地打进来,把三排电脑染成旧照片的颜色。空调嗡嗡地响,像个老人在自言自语。我的手指搭在键盘上,指腹下是F键上那道被我磨了十年的小坑——那是青轴键帽上独一无二的凹痕,像一个指纹,刻着我的十年。

我闭上眼。

屏幕上是那道题——【P6216 回文匹配】,洛谷上的紫色标记,省选难度。十年前我第一次看见它的时候,觉得“回文”是这个世界上最浪漫的词。十年后我终于写出了一个O(n log n)的做法,用Manacher加后缀数组,常数巨大,但在最后的测试点上跑进了1.2秒。

我想起林逸飞说过的一句话:“OI这个东西,你花的时间越长,越觉得它像一个坑。你拼命地挖,以为自己在挖一口井,其实你在给自己挖一个坟。”

他说这话的时候,我们刚打完NOIP2018,他全省rank 47,我rank 48,双双卡在省一的线上——那年省一名额是46个。

他没哭,我也没哭。我们坐在考点门口的台阶上,一人一瓶冰红茶,看对面的小摊贩收摊。烤红薯的炉子灭了,最后一点白气散在风里。

“明年再来。”我说。

林逸飞笑了一下,那个笑容我记了很久——不是苦笑,也不是释然,是一种很奇怪的表情,像是一个人在沙漠里走了很久,终于承认自己其实不知道绿洲在哪,但又不愿意停下来。

“好,明年再来。”他说。

然后他去了xxx。

我叫沈秋,名字是爷爷起的。他说“秋”字好,禾谷成熟,是收获的季节。

我七岁那年,我爸从旧货市场搬回来一台清华同方的台式机,方头方脑的,开机要一分半钟。机箱上贴着一张褪色的贴纸,画着一只企鹅,下面写着“Linux”。

“给你玩。”他说。

那年头,“玩电脑”在大人嘴里是个危险的词,像“玩火”一样,后面往往跟着“上瘾”“堕落”“考不上大学”。但我爸不一样。他年轻的时候是个程序员,在xxx的一家小公司写代码,后来公司倒了,他回到我们那个十八线小县城,进了一家事业单位,从此再没碰过编程。

“你别学我。”他说,“我是一辈子没搞出名堂。但电脑这个东西,有意思。”

他把那张Linux的贴纸撕下来,贴在我书桌的抽屉上。那个抽屉后来装满了打印的题解、比赛准考证、用废的键帽,和十七封没有寄出去的信。

我在那台电脑上学会了打字。一开始是拼音,后来我爸教了我五笔,说“程序员打字要快”。我练了一个暑假,手指头磨出了茧。五年级的时候,学校开了微机课,教的还是打字。全班只有我一个人用五笔,老师看了我的屏幕,愣了半天,说:“你……你练过?”

我说:“嗯。”

老师说:“那你打字速度可以免考了。”

那是我人生中第一次因为编程相关的事情被表扬。我坐在微机课的机房里,周围是三十台方方正正的CRT显示器,空气里有种塑料加热后的味道,阳光照在键盘上,每个键帽都反着光。

我觉得那个地方特别亮。

初中的时候,学校的信息学竞赛社团招新。发传单的是一个戴眼镜的高个子学长,他站在食堂门口,手里拿着一沓A4纸,上面印着“全国青少年信息学奥林匹克竞赛”几个大字。

“学这个有什么用?”有人问。

学长推了推眼镜,想了半天,说:“保送。”

然后那个人就报名了。

我也报名了。但我不是为了保送——十二岁的我根本不知道保送是什么意思。我只是觉得,“奥林匹克”四个字听起来很厉害,而且它和电脑有关。

第一次社团活动是在周六下午,机房在综合楼五楼最东边,门牌上写着“微机室(3)”,但里面只有二十台电脑,还是Windows XP的系统。指导老师姓周,教数学的,头发已经白了三分之一,说话带着浓重的方言口音。

“来,先学C++。”他说。

他把“Hello World”写在黑板上,粉笔字歪歪扭扭的,最后还少打了一个分号。我们照着敲,然后按F11编译,黑色的控制台窗口弹出来,上面只有一行字。

Hello World.

我盯着那行字看了很久。它不像画画,画完了一幅画你能看到颜色和形状;它不像写作文,写完了你能读到一个故事。它就那么一行字,白底黑字的,冷冷清清的,但我觉得——

我觉得我创造了一点什么。

哪怕只是一行字。

周老师不是科班出身,他大学学的是物理,因为学校缺信息学老师,被赶鸭子上架。他的水平说实话很一般,连动态规划都讲不太清楚,但他有一件事做得特别好——他给我们每个人买了一本《xxx》,xxx那本,紫皮的。

“你们自己看。”他说,“看不懂的来问我,我不一定懂,但我们可以一起研究。”

那本书我翻了三遍。第一遍的时候,我在第三章的“递归”就卡住了,翻来覆去看了两天,还是不明白汉诺塔为什么是2^n-1。第二遍的时候,我把书从头到尾抄了一遍,用掉了四支中性笔。第三遍的时候,我开始做题,UVa上的,一道一道地刷。

初二的NOIP普及组,我拿了省一。成绩出来那天,周老师在办公室里给我泡了一杯茶,用的是他平时舍不得喝的铁观音。

“沈秋,”他说,“你是我教过的学生里最有天赋的。”

我端着茶杯,不知道该说什么。那是我第一次被人说有天赋。后来我才知道,“天赋”这个词在OI的世界里有多轻,又有多重。它像一把梯子,你以为它能把你送上屋顶,但爬上去之后才发现,屋顶上面还有云,云上面还有天,天上面还有——

还有那些你永远够不到的人。

高一,我进了xxx,因为OI。学校有一个专门的竞赛班,机房是全新的,i7处理器,机械键盘,两台27寸的显示器并排摆着,像一对翅膀。

教练姓方,据说是从xxx挖过来的,三十出头,戴一副无框眼镜,说话语速极快。他第一次见我们,在黑板上写了四个字:

“天赋无用。”

“我知道你们中间有人拿过普及组省一,有人已经学了两年,有人觉得自己的脑子特别好使。”他转过身来,目光从每个人脸上扫过去,“我告诉你们,这些东西在提高组面前,在省选面前,在NOI面前,什么都不是。”

“你们要做的事情只有一个——刷题。刷到你的手指记住每一个算法,刷到你的眼睛看到一道题就能自动映射出解法,刷到你的梦里都是线段树和网络流。”

“OI不相信天赋。OI只相信代码。”

他说得斩钉截铁,像在念一段经文。我们坐在下面,十七八岁的少年,眼睛里都亮着一种光——那是一种相信的光,相信努力可以改变一切,相信刷一万道题就能进省队,相信代码写得够快就能追上那些传说中的名字。

现在回想起来,方老师的话只说对了一半。OI不相信天赋,但它也不相信努力。它相信的是——

它什么都不相信。

林逸飞是高二转到我们学校的。

他从xxx回来,瘦了二十斤,颧骨突出来,像一把没有鞘的刀。他的编程风格也变了——之前的代码规规矩矩的,注释写得很清楚,变量名用完整的英文单词;现在他的代码密集得像一团乱麻,宏定义满天飞,位运算用得出神入化,但 readability 几乎为零。

“你在xxx都学了什么?”我问他。

“只学了一个东西。”他说,“如何在一秒钟之内写出别人三秒钟才能写完的代码。”

他把键盘推过来给我看——那是一个87键的红轴机械键盘,键帽上的字母已经全部磨没了,每一个键都是黑色的、光滑的,像被河水冲刷过的鹅卵石。

“盲打?”我说。

“不是盲打。”他摇头,“是把键盘变成你身体的一部分。你打字的时候会想手指怎么动吗?不会。写代码也是一样。当你不需要思考语法、不需要思考变量名、不需要思考括号怎么配对的时候,你全部的注意力才能集中在算法上。”

他停了一下,又说:“在xxx,我们练的不是代码,是本能。”

那年NOIP提高组,林逸飞全省rank 12,我rank 18。方老师很高兴,说我们两个都有希望进省队。

“省队名额几个?”我问。

“五个。”方老师说。

机房安静了三秒钟。

那三秒钟里,我听见空调的嗡嗡声,听见键盘的敲击声,听见林逸飞轻轻吸了一口气的声音。那个声音很轻,像一根针掉在地上。

五个。

全省几百个人,争五个名额。

从那天起,我和林逸飞的关系变了。不是变坏了,是变了。我们还是会一起吃饭,一起讨论题目,一起在深夜的机房里对着屏幕发呆。但有些东西悄悄地出现了——像一道看不见的墙,透明的,但摸得到。

有一次,我在做一道树链剖分的题,调了三个小时还没过。林逸飞走过来,站在我身后看了一会儿,说:“你的线段树区间合并写错了,lazy标记下传的时候顺序不对。”

他指出了一个bug,帮我省了至少一个小时。

我应该感谢他。但我当时的第一反应不是感谢——是一种很隐秘的、我自己都不愿意承认的恐惧。我在想,他站在我身后的时候,看到了什么?他看到了我的弱点?他看到了我的代码里那些丑陋的、不优雅的地方?他看到了我的上限?

我把那个bug修好了,程序跑过了。但那天晚上我失眠了,躺在床上翻来覆去,脑子里全是林逸飞的那句话——“lazy标记下传的时候顺序不对。”

他的语气很平淡,像在说一件理所当然的事情。但正是那种平淡让我害怕。它意味着,在他的视角里,那个困扰了我三个小时的bug,是一个一眼就能看出来的、低级到不值得花时间思考的错误。

他比我强。

不是强一点,是强一个维度。

省选在四月。

那年省选的题目很难,第一题是一道图论,第二题是一道毒瘤的线段树,第三题是一道DP套DP。我写了三个半小时,第一题没过,第二题拿了部分分,第三题勉强调通了。

交卷的时候,我的手在抖。

成绩出来那天,方老师把我叫到办公室。他的桌上放着一杯已经凉了的茶,茶叶沉在杯底,像一具具小小的尸体。

“沈秋,”他说,“你rank 6。”

我没有说话。

“林逸飞rank 4,进了省队。”

“我知道。”我说。

方老师沉默了一会儿,然后说:“你还有一年。”

“我知道。”

我走出办公室的时候,走廊里空无一人。四月的阳光很好,照在瓷砖地上,亮得刺眼。我走到走廊的尽头,推开消防通道的门,坐在楼梯上。

我没有哭。

我只是坐在那里,看着楼梯间的墙壁。墙上有人用马克笔写了一行字,字迹歪歪扭扭的,像是某个高中生在中二病发作的时候留下的:

“NOI金牌,等我。”

我看了那行字很久,然后拿出手机,打开洛谷,开始刷题。

那天晚上,我做了一个梦。梦里我在一个巨大的机房里,四周全是电脑,屏幕上都亮着代码。我坐在中间,手指放在键盘上,但键盘上的字母我一个都不认识。我想打“Hello World”,但打出来的全是乱码。我拼命地敲,敲到手指出血,屏幕上还是什么都没有。

然后我醒了。

枕头湿了一片。

高三那年,我把所有的时间都给了OI。

早上五点半起床,背模板。不是背,是打——把每一种算法的标准实现打一遍,打到手指形成肌肉记忆。01DP、Dijkstra、Kruskal……我的手指像一个自动演奏的钢琴家,在键盘上跳着同一首曲子,日复一日。

上午四节课,我全在刷题。课本立在桌上,手机藏在课本后面,用流量看题解。被老师抓到过三次,叫了两次家长。我妈在办公室里坐着,低着头,像做错了事的孩子。

“沈秋的成绩本来可以上xxx的,”班主任说,“他现在这样搞,万一竞赛没出成绩,高考也耽误了,两头空。”

我妈没有说话。回家的路上,她骑着小电驴,我坐在后面。风很大,她的头发飘起来,打在我的脸上。

“妈,”我说,“我能行。”

她没有说话。过了一会儿,她伸手往后,拍了拍我的膝盖。

那个动作比任何话都重。

晚上十点下晚自习,我跑到机房,一直坐到凌晨两点。方老师给我们留了钥匙,他自己也经常在。有时候我们两个人坐在机房里,各自对着各自的屏幕,一句话都不说,只有键盘声此起彼伏,像两个人的呼吸。

那段日子,我的水平确实在涨。省选模拟赛的排名从十几名慢慢升到了前五。有一次甚至拿了第一,那天的题目是一道字符串题,我用后缀自动机加线段树合并,写了一个比标程还快的解法。

方老师看了我的代码,说:“这个写得漂亮。”

我笑了。那是那一年里,我笑得最开心的一次。

但有一个问题始终存在——林逸飞。

他进了省队之后,去了国家集训队的选拔,虽然没选上,但他在全国赛上拿了一块银牌,被xxx签了。他回到学校的时候,整个人都不一样了——不是骄傲,也不是放松,而是一种……完成感。像一个人跑完了他的马拉松,虽然成绩不是最好的,但他到终点了。

而我还在跑。

我们偶尔还会一起吃饭,但话题变了。他聊大学的生活,聊xxx的ACM队,聊北京的雾霾和食堂的饭菜。我聊的只有题目——这道题我用了一个很巧妙的构造,那道题我卡在了第12个测试点,还有一道题我怀疑数据有问题。

他听我说完,笑了一下,说:“沈秋,你还是那个样子。”

“什么样子?”

“眼睛里只有代码。”

我不知道这是夸奖还是批评。我没有问。

第二次省选,还是四月。

那天早上我吃了两个包子,喝了一杯黑咖啡,提前半个小时到了考场。考场在xxx的一所大学里,机房很大,能坐两百人。我找到了自己的座位,坐下,把键盘拔下来,换上我自己带的——那个F键上有一道小坑的青轴机械键盘。

键盘插上去的一瞬间,我的手平静了。

那种感觉很奇妙,像一个乐手拿起了自己的乐器。键盘不只是输入工具,它是我的延伸,是我和电脑之间的桥梁。每一次按键,都是一次对话。青轴的“咔嗒”声是这门语言的音节,键帽的触感是它的语法,而我——我是那个说话的人。

题目发下来,我扫了一遍。

第一题:图论,最小割。我做过类似的,十五分钟写完。

第二题:数据结构,要求支持区间修改、区间查询、区间历史最值。这是线段树的经典扩展,我写过不下二十遍。四十分钟,调过。

第三题:一道DP题,结合了数论和组合数学。题目很长,我读了十分钟才完全理解。

然后我开始做。

两个小时过去了,第三题写了一大半,还剩最后一个子任务。我深吸一口气,继续写。

突然,我的手指停住了。

我发现了一个问题——我的DP状态定义在处理某个边界条件的时候,复杂度会退化成O(n²)。数据范围是10^6,O(n²)意味着会超时。

我试图优化,但每一种优化方案都会破坏已经写好的代码结构。我看了看时间,还剩一个小时。

我做了决定——重写。

我把已经写好的代码全部删掉,从头开始。手指在键盘上飞驰,青轴的声音连成一片,像暴雨打在铁皮屋顶上。

四十分钟后,新代码写完了。我编译,运行,样例1过了,样例2过了,样例3——

WA。

我盯着屏幕上那个错误的输出,大脑一片空白。还剩十五分钟。

我开始调试。打了几行调试信息,发现是DP转移的时候一个下标写错了。改过来,编译,运行——

样例3过了。

我提交了三道题。第一题、第二题是完整的,第三题我只来得及写完前面的子任务,最后一个子任务没时间写了。

交卷的时候,我的手指在发抖,但不是因为紧张——是因为肾上腺素退潮之后的虚脱感。我靠在椅背上,看着天花板,大口大口地喘气。

考场外面的走廊里,有人在哭,有人在笑,有人在打电话。我站在角落里,手里攥着那瓶已经喝了一半的矿泉水,等着成绩出来。

成绩出来了。

第一题100分,第二题100分,第三题——80分。

总分280。

全省rank 3。

我进了省队。

进省队之后的日子,是我OI生涯中最纯粹的一段时光。

省队集训在xxx的一所大学里,十个人,一个机房,一个月。教练是从大学请来的ACM队学长,姓唐,戴着耳机写代码的时候像一尊雕塑,一动不动,只有手指在动。

唐教练跟我们说的第一句话是:“你们已经是全省最好的了。但到了全国赛,你们什么都不是。”

“你们的目标不是拿牌,是不要丢人。”

这句话听起来很丧,但它反而让我放松了。因为当“不要丢人”是唯一目标的时候,所有的压力都消失了。我不需要去想金牌、银牌、保送、xxx——我只需要写对每一道题,写好每一份代码。

那一个月,我每天的生活极其规律:早上七点起床,八点到机房,刷题到十二点,吃饭,午睡半小时,一点半继续刷题,六点吃饭,七点开始做模拟赛,十一点结束,回宿舍洗漱,再看半小时题解,十二点半睡觉。

我瘦了十斤,但精神状态好得出奇。每天晚上躺在床上,闭上眼睛,脑子里会自动浮现出当天的代码,一行一行地飘过去,像一条河流。我不需要刻意去回忆,它们就在那里,在我的意识深处流淌。

集训结束的时候,唐教练给我们每个人写了一句话。他给我的纸条上写着:

“你的代码有一种节奏感。保持它。”

我把那张纸条夹在《算法竞赛入门经典》的第317页——那一页是“动态规划优化”的章节,页脚有一道我折过的痕迹,折痕已经发黄了。

NOI 2019,xxx。

七月的xxx热得像一个蒸笼,空气里全是水,吸一口都觉得肺里沉甸甸的。考点在xxx的一所中学,校园很大,种满了榕树,气根从树枝上垂下来,像一道道帘子。

比赛前一天晚上,我躺在宾馆的床上,翻来覆去睡不着。林逸飞给我发了一条微信:

“明天加油。”

我回了一个“嗯”。

他又发了一条:“别想太多,就当是一场模拟赛。”

我盯着那行字看了很久。他说得对,这只是一场模拟赛。但这不是普通的模拟赛——这是最后一场。不管结果如何,我的OI生涯,在明天之后,就结束了。

不管结果如何。

我想起七岁那年,我爸把那台清华同方搬回家的下午。他插上电源,按下开机键,屏幕上出现了Linux的启动画面——一行一行的文字滚动着,像某种古老的咒语。

“这是什么?”我问。

“电脑。”他说,“你可以用它做很多事情。”

“做什么?”

他想了想,说:“你想做什么,就做什么。”

那时候我不懂这句话的意思。现在,十年之后,我坐在xxx的一家宾馆里,空调嗡嗡地响着,窗外有蝉在叫,我的手指不自觉地在大腿上敲着——F、J、F、J,回到基准键位。

我明白了。

电脑不是用来做事情的。它是用来创造事情的。每一行代码,都是一个微小的创造。一个循环,一个判断,一个递归,一个动态规划的状态转移方程——它们都是你从虚无中召唤出来的东西,它们在运行的时候,在你的屏幕上留下痕迹,在内存里留下数据,在CPU的寄存器里留下电信号。

它们存在过。

就像我这十年存在过一样。

第二天,我走进考场。

键盘是我自己的,那个F键上有一道小坑的青轴。我把它插进USB口,手指搭上去,指腹准确地落在那个凹痕上。

咔嗒。

第一题是一道图论题,给定一个带权无向图,要求找出一条从起点到终点的路径,使得路径上最大边权最小。我一看就知道是最小生成树的性质题,直接写了个Kruskal加并查集,二十分钟搞定。

第二题是一道线段树题,要求支持区间赋值、区间加、区间求和,还要支持区间历史最大值查询。这是线段树的进阶应用,我写过不下二十遍。四十分钟,调过。

第三题是一道DP题——

我深吸一口气。

第三题是一道树形DP,每个节点有选与不选两种状态,但相邻节点的选择会互相影响,而且树的大小是10^5,普通的O(n²)DP会超时。我读了三遍,然后闭上眼睛,在脑子里把题目抽象成了一个数学模型——树上依赖背包,需要用树上合并的优化技巧。

我做过类似的题。

在某个深夜,在某个我已经记不清日期的凌晨,我坐在机房里,对着洛谷上的某道紫题,花了四个小时,写出过一个O(n log n)的解法。那道题和这道题的核心思想是一样的——利用子树大小合并的复杂度分析,将看似O(n²)的DP优化到O(n log n)。

我开始写。

手指在键盘上飞驰,青轴的声音清脆而密集,像一匹快马在石板路上奔跑。我的思路异常清晰,每一行代码都在它应该在的位置,每一个变量都有它存在的意义,每一个函数都像一个精密的零件,严丝合缝地嵌入整体。

两个小时过去了,代码写完了。

我编译,运行,样例1过了,样例2过了,样例3过了。

我深吸一口气,把代码提交。

然后我检查了前两题,确认没有低级错误。又检查了一遍输入输出格式,确认文件名是对的,确认freopen没有被注释掉。

还剩四十分钟。

我没有再做任何修改。我只是坐在那里,手指搭在键盘上,看着屏幕上那三份代码,像看着三个我亲手养大的孩子。

它们不完美。它们有瑕疵,有可以优化的地方,有不够优雅的实现。但它们是完整的,是我在十年的最后时刻,能给出的最好的答案。

铃声响了。

我拔下键盘,站起来。

走出考场的时候,阳光很好。xxx的阳光和北方不一样,它更重,更稠,像一层金色的蜂蜜涂在皮肤上。校园里的榕树在风中沙沙地响,气根摇晃着,像一个老人在捋胡须。

我掏出手机,给林逸飞发了一条微信:

“考完了。”

他秒回:“怎么样?”

我想了想,打了四个字:

“不后悔。”

成绩出来那天,我在家里的阳台上坐着。

七月的北方,傍晚有风,但不凉快。风是热的,像有人拿着吹风机对着你吹。阳台上的那盆绿萝长得很好,藤蔓已经垂到了一楼,我妈用绳子给它引了一个方向,让它顺着阳台的边缘爬。

手机响了。

是方老师。

“沈秋,银牌。”他说,声音里有一种我从未听到过的情绪——不是高兴,也不是遗憾,是一种很复杂的、介于两者之间的东西,“差一点金牌。第51名。”

“嗯。”我说。

“你……”

“方老师,”我打断了他,“谢谢您。”

电话那头沉默了很久。然后他说:“你是我的骄傲。”

我挂了电话,把手机放在膝盖上。阳台上的风把绿萝的叶子吹得翻过来,露出背面浅绿色的脉络。

银牌。

不是金牌,不是保送。只是一个银牌,一个“差一点”,一个“第51名”。

我想起十年前的自己,坐在那台清华同方前面,第一次打出“Hello World”。那时候的我不会想到,十年后的自己会为了一个名次、一块奖牌、一行代码,付出这么多。

但如果我能回到十年前,对那个七岁的孩子说一句话,我不会告诉他结局,不会告诉他这条路有多难走,不会告诉他“天赋无用”或者“努力无用”。

我会告诉他——

“键盘上的F键,会有一个小坑。那个坑,是你存在的证明。”

因为这就是OI给我的东西。不是金牌,不是保送,不是xxx的录取通知书。它给我的是一种能力——一种把虚无变成存在的能力。每当我写下#include <bits/stdc++.h>,每当我按下F11编译,每当我看到黑色的控制台窗口上跳出正确的结果,我都在创造。

哪怕只是一行字。

晚上,我打开电脑,登录洛谷。个人主页上,我的AC数量停在了3141。最后一道通过的题目是NOI2019的第三题,提交时间是三天前的下午两点十七分。

我在个人签名里加了一行字:

“十年OI,一场空。”

然后我删了。

又打了一行:

“十年OI,不枉少年。”

然后我关掉了浏览器。

尾声

三个月后,我坐在一所985大学的图书馆里,面前是一本《xxx》。窗外的银杏叶黄了,风一吹,就飘下来几片,落在窗台上,像一只只小小的手掌。

我没有去xxx,也没有去任何一所因为OI而对我敞开大门的学校。我选择了一所离家近的大学,学计算机科学,像一个最普通的学生一样,上课、写作业、打游戏、谈恋爱。

但每周六的晚上,我会去学校的机房坐一会儿。

...

学校的机房很旧,电脑还是Windows 7的系统,键盘是那种最便宜的薄膜键盘,按键软绵绵的,没有青轴的“咔嗒”声。我打开浏览器,登录洛谷,随便找一道题,然后开始写。

我不再追求速度,不再追求最优解,不再追求排名。我只是写。写一个快排,写一个Dijkstra,写一个线段树。手指在薄膜键盘上滑动,没有那道熟悉的凹痕,没有清脆的声响,但那种节奏感还在——唐教练说的那种节奏感,它还在。

我写完一道题,提交,AC。绿色的勾跳出来,像一个微笑。

然后我关掉浏览器,拔掉学生卡,走出机房。走廊里很安静,只有我的脚步声在回荡。月光从窗户照进来,在地上画出一个又一个白色的方框,像一个个空白的屏幕,等待着第一行代码。

我走出教学楼,秋天的风迎面吹来,凉的,干净的。我抬起头,看见天上有一颗很亮的星,不知道是什么星,但它就在那里,亮着,像一盏不会熄灭的灯。

我低下头,把手插进口袋里。口袋里有一枚键帽——青轴的,F键,上面有一道小小的凹痕。

那是我的十年。

是我一行一行、一天一天、一年一年敲出来的,属于我的,独一无二的——

Hello World.

【完】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值