OI 生涯回忆录
[前言]
自从 NOI 2021 退役,已经淡出算法竞赛两年有余, 突然想写一篇回忆录, 纪念那段激情燃烧的岁月....
[小学]
与众多竞赛生不同,小学时的我并不是在老师和同学们的赞许和鼓励中长大的。那时的我没有展现出过人的天赋,相反,我在班级里是一个不折不扣的异类。也许是 "开窍" 比别人晚的缘故吧,一直到二年级,我仍不会上楼梯; 体育课上跑步测试,我永远是倒数第一; 就连简单的广播体操,我也怎么学都不会做。
更加不幸的是,我还碰上了一位人品极其低劣的班主任。 她不仅从未给予我任何帮助,还总是责怪我拖班级后腿,并对我冷嘲热讽。记得有一次,一名同学在他的一篇作文里,以一种描绘小丑的口吻,写出了大量我闹的 "笑话",其中还包括我因为害怕被嘲笑,不敢上体育课的 "丑态"。我的班主任竟当着全班的面,将他的那篇作文读了出来,完全不顾及我的感受。她每读一段,班里便发出阵阵笑声。那时,好似所有人都喜欢将快乐建立在我的痛苦之上。
童年时期过早接触人性之恶,使我拥有了与他人截然不同的性格。由于痛恨集体主义,直到高中,我都很少参加春游,秋游,甚至是毕业典礼之类的集体活动。与此同时,我也变得极其争强好胜。在后来的日子里,正是因极度渴望证明自己,使我最终走上了竞赛的道路。
五年级时, 由于体育课和美术课没能拿到 "优", 我开始为择校而发愁。 当年,想要进入市里较好的民办初中, 必须要所有科目都拿到 "优"。 否则,就只能上一所很普通的公办学校。而在江苏,一所公办初中只有不到 50% 的人能上高中。
我的父母并没有很 “硬" 的关系, 能让我 "走后门" 进入民办初中。
怎么办?唯一的办法是,在编程 / 奥数比赛中取得较好的成绩,被破格录取。我最终选择了重点学习编程。而做出此决定的原因,是由于我在一年级时自学了打字,使我自认为对计算机很擅长。
与其他城市不同,常州市有着一套极其完善的信息学培养体系,使得许多成绩优异的同学很早便有了接触编程的机会。而我进入培训班时,是五年级下半学期,记得那时部分同龄人已经学习了两年有余。可想而知,我和他们的差距是巨大的。刚开始的几节课,我听得云里雾里。 由于没有热爱,我的学习态度也十分糟糕。有时题目不会做,我便偷偷打开同学给我的小游戏,开始自娱自乐。
不料,由于在高级班时的一次课堂测试中意外取得了领先,我对编程从此产生了浓厚的兴趣,在班里的成绩也越来越突出。第二年秋天,我已成为了培训班里最优秀的学生。随后,我又通过自学深度优先搜索 (DFS), 宽度优先搜索 (BFS) 和二分查找等基础算法连跳了三个班,并因优异的成绩在何静老师的推荐下,进入江苏省常州高级中学,在那里接受了更加正规、专业的编程训练。
记得那时每晚做完作业,我都会打开电脑练习编程,那是我第一次为了一个目标而努力奋斗。当然,因为热爱,我也享受着这个过程。
六年级第二学期举行的市编程比赛, 我顺利从 300 多名选手中脱颖而出, 获得大市第一, 提前四个月就被常州外国语学校录取。当时,很多人看到成绩,都感到很惊诧。 他们没有想到,一个从没听说过名字的人, 获得了最高分。
随后四个月无忧无虑的生活, 让我明白了一个非常深刻的道理 : 想要远离那些自己厌恶的人和事,获得真正的自由,必须自己足够强大。
灰暗的小学时光终于结束了,新的生活也从此开始。
升初中的那个暑假里,我第一次去参加省里组织的信息学集训 (地点在镇江扬中)。 教练觉得初中组的题可能对我太简单,于是让我去高中组感受一下。第一次考试,我用小学时学到的一些知识,自以为写出了前两题。 不料最终只获得了 30/300 分的 "高分",排在榜单的最后几位。
不过我没有难过。毕竟一起集训的都是大哥哥和大姐姐。记得当时认识了几位刚结束中考的,常州一中的学长。他们几个性格很好,不嫌弃我年龄小,经常带我一起玩。 每次考试进行到一半,他们便打开 U 盘里的游戏,开始 "颓废"。 我有时帮学长们完成没做完的题,有时也加入他们的“颓废”行列。 此外,我还第一次见到了传说中的樊AU (昵称) 大佬。他平易近人,水平也确实很高,就是有些羞涩。
除了考试外便是专题讲座了,当时,讲课的老师主要是一些学生教练。经过几天的学习,我受益匪浅。
扬中的天气格外宜人,每天傍晚坐在教室里,一边观赏窗外的夕阳,感受轻柔的夏风,一边思索老师上课时介绍的那些算法。
这种简单的快乐,似乎在我进入初中后,就再也找不到了。
集训结束后,教练找到我,问我愿不愿意初中参加信息学竞赛,我想都没想就答应了。
万万没想到,从此走上了一条与众不同的道路。
[初中]
初一的生活是幸福的, 那时的课业压力并不大, 虽然我的学习态度很烂, 但考试也少有不在班级前十的时候 (数学英语经常前五)。与此同时,我还参加了全国奥林匹克信息学联赛 (NOIP) 初中组的比赛, 顺利获得了全国一等奖,排名全省第 31。
然而, 我并没有投入太多时间学习编程,而是像其他同学那样享受初中生活。当时的我,也不懂得信息学竞赛和小学的编程考试有多么大的差异。
初一下学期时, 我偶然在互联网上看到了一位山东的学姐写下的信息学竞赛回忆录 (链接在 这里) , 给我带来了极大的震撼。 在此之前我从未想过,竞赛的道路是如此残酷。一直以来,我都认为我可以像省常中的许多前辈一样,"按部就班" 地进省队,拿奖牌, 进入理想的大学。然而,我忽视了他们为此付出的努力。
我并不想获得像那位学姐那样惨痛的结局, 我必须提前开始准备。
于是 ,接下来的暑假里,我放弃了一切外出玩耍的机会,每天七点就开始做题,那时我选用的教材是李煜东写的 << 算法竞赛进阶指南 >>。在两个月的时间里, 我完成了所有内容的学习,并亲自实现且通过了书上 600 多道例题。在这个过程中,我逐渐蜕变为一名真正的,训练有素的 OI 选手。
功夫不负有心人。 暑假结束后, 我开始在省常中每周的例行训练中取得领先,作为年龄最小的选手, 我几乎每次都能在 100 多人中取得前三的成绩,甚至拿过很多次第一,成为了一时的风云人物。 在此期间, 我还结识了许多从外地来常州集训的学长学姐们,他们给予了我许多关心与支持。
优异的训练成绩使我天真的认为,自己可以在联赛中取得 450 分以上的高分。记得当时,我还早早给自己树立了拿金牌,保送清北的最高理想。
不料那年的联赛我意外地考得很差, 只获得了 296/600 的分数, 离全国一等奖分数线都差了 15 分左右。 由于花费了大量时间进行训练,我的文化课成绩也一落千丈。联赛结束后的校内期中考,我从班级前十直接跌至倒数,成为不折不扣的差生。
次年四月,我去南京参加了省队选拔比赛,那是我第一次参加如此高级别的赛事。尽管尽全力打满了所有的暴力分,我的最终排名仍是全省垫底 (在 130 名选手中排名第 109) 。在那场比赛中,徐翊轩学长力压众多南外选手,成为江苏省省队队长。而我的分数连他的四分之一都不到。这让我第一次体会到与高手之间存在的巨大差距。
一连串的打击使我彻底迷失了方向。 那段时间,校内语文课正学到 << 未选择的路 >> 这篇课文。
黄色的树林里分出两条路,
可惜我不能同时去涉足,
我在那路口久久伫立,
我向着一条路极目望去,
直到它消失在丛林深处。
但我却选了另外一条路,
它荒草萋萋,十分幽寂,
显得更诱人、更美丽;
虽然在这两条小路上,
都很少留下旅人的足迹;
虽然那天清晨落叶满地,
两条路都未经脚印污染。
呵,留下一条路等改日再见!
但我知道路径延绵无尽头,
恐怕我难以再回返。
也许多少年后在某个地方,
我将轻声叹息把往事回顾:
一片树林里分出两条路,
而我选了人迹更少的一条,
从此决定了我一生的道路。
第一次读这首诗时,我差点哭了出来。我又何尝不是选择了一条少有人走的道路呢?然而,付出如此多的努力,我究竟得到了些什么?是那张可笑的二等奖证书,糟糕的省选排名,还是一塌糊涂的学习成绩?曾尝试和班级里的同学诉说我的处境,然而似乎很少有人能够理解。总感觉自己和同龄人的共同语言越来越少了。
是啊,大家在乎的都是游戏,体育,恋爱,还有学校里的成绩,我的破竞赛又算得上什么呢?
记得那段时间,我时常彻夜不眠 (当时正值长个子的关键时期,也许这也是我长不高的一个原因吧 (笑)) ,一次又一次怀疑自己是否做出了正确的选择。 每天晚上都要和母亲进行很久的谈话 (在此感谢我的家人陪我度过了最艰难的岁月)。
好在我逐渐学会了坚强, 明白了失误是竞赛中不可避免的事情。"自己选择的路,跪着也要走完",每当我想要放弃时,便用陈立杰学长的这句名言给自己加油打气。
省选结束后,我并没有花太多时间进行训练。不过, 我对初二的比赛进行了系统性的分析,发现自己最主要的问题是没有重视提升自己的思维水平。 虽然我花了大量时间钻研高级数据结构和算法 (网络流,FFT,Link-Cut-Tree, 轻重链路径剖分,后缀自动机 ,点分治等等), 然而, 我却无法很好的应用它们。
开始意识到, 信息学竞赛的核心是 Problem-Solving Skills (解题能力) , 而不是写代码的能力或者是掌握很深奥的数据结构与算法。
于是我通过参加一些国外网站 (Codeforces, Atcoder, USACO...) 上举办的比赛,重点提升自己的解题能力。初二升初三的暑假里,我成功在 Codeforces 上获得了 Candidate Master 头衔, 并且晋级 USACO 铂金组(最高级别)。
高效的训练方式使我在初三那年的联赛中取得了很理想的成绩,高出全国一等奖分数线 158 分, 在江苏省包括所有高中生在内排名第 39 。 我也提前 9 个月就被保送进江苏省常州高级中学创新实验班。除此以外, 我还获得了全国信息学冬令营, 亚太地区信息学奥赛,以及清北冬令营的入围资格。
看到成绩后,我长舒一口气,心想自己终于把握住了一次机会。
然而,更大的挑战还在等着我。
联赛过后的第一场比赛便是清北冬令营了。 虽然教练强烈建议我选择计算机更强的清华, 由于更喜欢北大的人文关怀而非清华又红又专的氛围, 我申请了北大。
在北京的三天里,我参加了两场比赛和三场面试。比赛中的试题似乎有些超出我的能力范围,我只取得了 161/600 的成绩。靠着年龄优势和面试中较好的发挥,我最终勉强拿到三等约。也正是在这场比赛中,我的同学 (也是朋友) 俞神在第二天轻松取得了 200+ 的分数, 拿到一等约。一年前他还在参加初中生的比赛,可如今却已远远超越了我。
第一次意识到,天赋对于学习竞赛是如此重要。
为了准备接踵而来的省选,寒假里,我去浙江金华参加了正睿 (信息学培训机构) 组织的十连测。虽然几次考试的成绩并不算太差,但培训的内容却什么也听不懂。集训营里,给我留下最深印象的几位大佬,一位是青岛二中的张艺缤,他虽然上课一直在打游戏,可是每次模拟赛都能取得接近满分的成绩。另一位是人大附中的许庭强,他和我一样,也是初中生,却已经打上了 Codeforces IGM (两年后,他代表中国队,在国际奥赛中取得金牌,而且是全球最高分) 。还有来自南京外国语学校的徐源,他也许是我见过最爱装弱的 OI 选手了。不过,此人虽然声称自己 "又懒又菜" 并且 "课内一塌糊涂", 其实每天都补题补到半夜,并且在训练中的成绩和张艺缤差不多。
跟他们相比,我可能是真的又懒又菜吧。虽然付出大量精力准备,我最终还是考砸了。 俞神获得了 300+ 的成绩,差点初三就进了省队。而我的分数只比他的三分之一多一点。有时真的感到很好奇,为什么别人轻松做出的题目,我却怎么想都想不出来呢?惨痛的失利让我再次对自己产生了怀疑。
不过,也许是因为年轻时的一腔热血,我还是选择了咬牙坚持,并取得了一些意料之外的成果。 初三到高一的暑假里, 我在由于疫情延期举行的全国冬令营中收获竞赛生涯第一枚奖牌 - 是一枚铜牌。 随后, 我又在亚洲和太平洋地区信息学奥林匹克竞赛 (APIO) 中, 收获第二枚奖牌 - 这次竟然是一枚金牌。 曾以为我的智商可能一辈子都与奥赛金牌无缘,然而却在初三就成功了。这让我感到十分惊喜。 最后一次以初中选手身份参加比赛,是全国信息学奥林匹克竞赛 (NOI) 的线上同步赛, 获得了银牌分数线上的成绩。这三枚奖牌,让我重新找回了一些自信。
看到有学长成功获得 NOI 金牌,入选国家集训队,而有些只能回到教室学文化课,短短两天内许多人的人生轨迹都被改写,心中百感交集。那年,教育部出台了强基计划,这意味着竞赛生在择校中获得的优势被大大减少了,使得这条道路变得更加残酷。
[高中]
然而, 我仍然在进入高中的第一个月时就选择了停课训练。 而我做出此决定的原因,正是因为一些优秀前辈们的故事激励了我。
比如本校的陆明琪学姐,她在高二那年的比赛中遭遇了滑铁卢般的失利,只获得了铜牌。 更不幸的是,强基计划的出台又让她通过铜牌拿到的武汉大学有条件录取协议成为废纸。但她在高一高二完全没上课的情况下,仅通过高三一年的努力就裸分考入了清华大学计算机系,随后又在高手如云的清华校测中考进姚班。
记得那年比赛结束后,她在 QQ 空间里说 : 上帝明目张胆的不公平,但凡人保留偏执的权利。
我想,每个人都需要她身上的那股闯劲。我对自己说, 趁年轻,不要辜负心中梦想的声音。
训练是艰苦的,我在博客中记录了当时所做的题目 九月训练记录 和 十月训练记录
十一月的联赛,我取得了 249/400 的成绩,排名江苏省第 14 名。 随后,我在全国信息学冬令营 和 亚太地区信息学奥赛中收获两枚银牌,并参加了清华大学信息学冬令营,获得二等约 (对应曾经的高考降 60 分录取协议)。
紧接着的省选是异常重要的比赛。
我废寝忘食地准备,甚至连除夕夜都在电脑前思考问题。
然而,仿佛是命运给我开了个巨大的玩笑 : 我在一试最简单的第一题中犯下了一个极其愚蠢却又极其致命的错误 -- 两行代码写反。
记得出成绩的那天,我一大早便来到机房。或许是因为紧张的缘故,等待分数的过程中,我的浑身都被汗水浸湿。而当看到第一题竟然得了 0 分后,我顿时感到大脑一片空白。
也许我可以接受因题目太难,技不如人而被淘汰;然而,如此荒唐的结局是我从未想过的。
多么讽刺啊,全省前 30 名选手,所有人第一题都得了满分, 唯独我的零分格外显眼。其实第二天的成绩很好 (275 / 300, 全省第 6 名),然而这又有什么用呢?最终我以标准分 5 分的差距与省队失之交臂。
众人面前,我装作一副无所谓的模样。直到一起训练的同学们都离开了机房。 那一刻,我彻底崩溃了。
与其说对比赛结果的不满和对前途的担忧,更令我感到悲哀的是,自己仿佛从未被他人理解过。 由于童年创伤,一直以来我都是一个很脆弱很自卑的人,总是幻想着在国赛中拿到金牌,通过这样巨大的胜利找到自信。而和我朝夕共处的其他 OIer 们都拥有良好的心态, 他们没有我这样重的思想包袱。
"快乐是别人的,我什么都没有"。
记得初二那年,一位女同学在美术课上嘲笑我 "除了会写程序一无所有",那天我难受得哭了一整晚。然而,现在我连信息学竞赛也失败了。
回教室后,我将不可避免地面对一些尖酸刻薄的同学们的恶毒讽刺,和部分令人作呕的学生家长们的闲言碎语。
虽然竞赛生涯一次又一次的失利已经让我磨练出强大的抗打击能力,这次失败使我开始自暴自弃。
那段时间我成为了一个彻头彻尾的坏学生,经常上课睡觉,翘课,打游戏,和一些同样不学习的朋友到处鬼混。我的文化课成绩随之直线下降,时常在班里垫底。
经过很长一段时间的沉沦后, 我开始重新思考自己的未来。
也许是时候想想自己要什么了。 我问自己,参加信息学竞赛是真的因为热爱吗? 还是只是享受那种碾压别人的变态快感,或是为了给自己逃避现实,逃避文化课找借口, 又或是为了纯粹的功利心和虚荣心?
各种原因都有吧, 唯独我对算法的热爱, 好像从很久以前就已经失去了。
停课训练使我成为了一个和普通高中生截然不同的 "怪人"。不仅学业成绩一塌糊涂,而且性格愈发暴躁。总是因为一两场比赛和训练就开始怀疑、否定自己。
然而,也许我真的只是个普通人吧。突然理解了学姐博客中的那句话 "优秀与顶尖之间有着难以逾越的差距。 而这条路的残酷性在于,它只属于最顶尖的那些人"。 想想每次外出集训都能碰到一些既有天赋又努力的大佬,同龄人中,南外的戴江齐同学已经打上了 Codeforces LGM。即使我进入了省队, 也大概率无法在更加残酷的国赛中获得金牌。
是时候该退出了吧!竞赛已经对我的心理健康产生了太多负面影响, 我的人生价值也不该被绑定在这样一个赌博性质极强的智力游戏上。况且我早已不热爱它了。
在网上了解到了许多信息,突然发现出国留学是一个很好的想法。毕竟,国外的高校可以提供很多国内无法提供的资源。计算机并不等于算法竞赛,进入一所世界领先的高校,学习一些 state-of-art techniques, 是更加重要的事情。如果我在国内参加高考, 很有可能只能考上一所普通高校 (毕竟停课时间太久了),并浪费四年宝贵的青春。
唯一的缺点恐怕就是需要父母多花钱了, 我是普通老百姓的孩子,我的家庭并没有那么富裕。 然而,也许我可以参加 AP 考试省下一年的学费和生活费;在大学里, 我也可以通过拿奖学金和实习的方式减轻家里的负担。
好在我的家人非常开明,都支持我的决定。
这时候我的教练告诉我,CCF 给每个省都下发了奖励名额,我作为学校省队线外的第一名,可以以 D 类选手 (编号 JS - 0021) 的身份参加决赛,但是无法保送。
也就是说我还是进入了省队。 然而这不重要了,因为我已经决定,这场比赛后就淡出算法竞赛,也就是基本退役了。
从那时起, 我的重心便从信息竞赛转向了备战托福和 AP 等标化考试。 有时候也会回班学一些文化课 (主要是数学)。
那年暑假举行的国赛, 由于准备不充分, 我最终只获得了一个铜牌中上段的名次。 作为江苏选手真的有些丢人。
颁奖典礼上,看着许多熟悉的人都拿到了金牌。
多么希望我也是他们中的一员啊!
虽然早有准备, 但一直求胜心切的我还是受不了这样的冲击, 我感到我的心如撕裂般疼痛。
于是,颁奖典礼还没结束,我便直奔火车站,也彻底告别了陪伴我 4 年的信息学竞赛。
也许人生总要有点遗憾吧, 回程的火车上,我这样安慰自己。 如果任何事情都顺风顺水,好像也没什么意思呢。
接下来的一年里,我离开机房,回归了久违的集体生活。无论是课堂上,还是运动会,文艺汇演等活动中,同学们的精彩表现都让我意识到,评价一个人的标准不应是单一的。我开始逐渐走出曾经那个封闭的小圈子,拥抱崭新的生活。
高三那年的申请季,我通过 108 分的托福成绩和 9 门 AP 大学先修课,收获了加拿大不列颠哥伦比亚大学 和 麦吉尔大学的 offer,终于给我的高中画上了一个较为圆满的结局。
[退役后]
如今,我已踏入大学的新阶段。在大学里,重新发现对算法的热爱,与志同道合的朋友深入交流,接触不同文化背景的异国友人,让我逐渐明白人生的多样性与丰富性。
努力工作,享受生活,我开始领悟到人这一生需要平衡。
竞赛给我留下的烙印终究会被岁月慢慢溶解,如今回想起当初那段努力奋斗的过往,突然感到很是怀念,心中也慢慢放下了许多。而回顾学习 OI 时的心态,仿佛那时有些幼稚、狭隘。其实人的潜力是多方面的,需要将视野放得更加开阔。
有位前辈的话说得好, "人生如此复杂, 机会多得像稠密图, 我们没有理由认输, 尽管我们走不了最短路, 但图仍是连通图, TLE之前, 没有一个节点叫失败"。
对于仍在 OI 征途上的同学们,我想说:你们的坚持是正确的,每一次努力都是值得的。希望机房里的日子成为你们生命中一段难以忘怀的记忆,在这连通图的人生旅程中,愿你们找到属于自己的光芒,踏上一条通向梦想的独特之路。
[致谢]
最后我想感谢一些在竞赛道路上给我提供鼓励与支持的人 (如果有遗漏很抱歉)
长辈:
我的家人
曹文教练
秦新华教练
何静老师
许晓伟老师
吴涛老师
学长学姐 :
濮成风
吴之琛
陈柘宇
李泽清
陆明琪
同届机房的朋友们 :
杨济源
何润元
陆华均
俞越
王子尧
许天祺
杨子烆
杨砚泽
刘兆洲
樊书岩
王钧澎
难忘和你们共同进步的那段时光, 难忘机房里的欢声笑语!
学弟:
赵海鲲
外校的朋友们 :
杜以
李新年
孙从博
万天航
刘孟博
桑田
黄旭
龚可
袁天骏
Foreign Competitive Programmers :
Vahagn Grigoryan (Armenia)
AmirReza PourAkhavan (Iran)
Lara Semeš (Croatia)
还有很多教室里的同学们, 就不一一列举了!
小有遗憾的 NOI2021
那年在北大
省选前的那个圣诞节, 同学们给我写的贺卡, 至今看了还是很感动!
我的大学校园
Reference :
Ten Years of Competitive Programming - AmirReza PourAkhavan
亲爱的朋友,感谢你阅读本文!
本人的文字水平较差,并且部分段落写得有些矫情。 但是大多是我的真情实感!希望能够包容。
再次感谢!祝你拥有美好的一天!
EVENBAO
Dec 1st 2023, Vancouver