1. 初识算法世界的震撼
记得第一次接触编程是在小学五年级的计算机兴趣班上。老师用Pascal语言演示了一个最简单的"Hello World"程序,当那个黑色窗口里跳出白色文字时,我感觉像是打开了新世界的大门。和很多OIer一样,我的启蒙教材是那本经典的《信息学奥赛一本通》,从最基础的变量定义、循环结构开始,每天放学后就抱着书啃,把书上的例题一个个敲进电脑。
那时候对算法的理解特别单纯,觉得能把题目做出来就是胜利。第一次参加校内选拔赛时,我连时间复杂度都不会算,硬是用暴力枚举过了三道题,还沾沾自喜。直到老师给我看学长用动态规划0.1秒就跑出来的程序,我才意识到算法世界的深邃。这个认知冲击让我连续失眠了好几天,满脑子都是"原来程序可以这样写"的惊叹。
2. 竞赛路上的第一个里程碑
第一次正式参加NOIP普及组的情景至今历历在目。考场里此起彼伏的键盘声,监考老师来回巡视的脚步声,还有自己砰砰的心跳声混在一起。前三题都比较顺利,但第四题卡住了——那是个需要贪心算法的题目,当时我的知识储备里根本没有这个概念。
最后15分钟,我决定放弃正解,老老实实写了个60分的暴力DP。这个决定后来被证明是明智的,因为直到几年后我才能证明那个贪心算法的正确性。成绩出来时360分的分数让我欣喜若狂,更重要的是这次比赛让我明白了两个道理:一是比赛策略和代码能力同样重要,二是要清楚自己的能力边界。
3. 遭遇第一次重大挫折
初二那年参加GDOI省选时,我遭遇了OI生涯的第一次滑铁卢。第一天第一题居然是道一次函数题,而当时的我连一次函数都没学过,直接50分惨案。第二天拼尽全力做出了一道分层图最短路,总分190分却以10分之差与省队失之交臂。
记得那天晚上在四会中学的操场上,我和父母一圈圈地走着等分数线公布。夕阳把三个人的影子拉得很长,最后收到落选消息时,那种混合着不甘、懊悔和委屈的情绪至今难忘。但正是这次失败让我意识到,OI不是靠小聪明就能玩转的游戏,需要系统性的知识体系和扎实的代码功底。
4. 突破瓶颈的疯狂训练
初三前的暑假,我做了个疯狂的决定:每天刷10道算法模板题。和队友代晨昕一起,我们从最基础的快速排序、二分查找,到线段树、网络流,把NOI考纲里的算法挨个啃了一遍。三个月下来,校OJ上的提交记录显示我们每人刷了300+道题。
这种魔鬼训练带来的改变是惊人的。随后的NOIP2017中,我成为了全国13个AK选手中唯一的初中生。更让我自豪的是,在写最后一题的Treap时,那种行云流水的感觉——每个旋转操作都像是肌肉记忆,调试一次通过。这让我深刻体会到,算法竞赛没有捷径,唯手熟尔。
5. 心态管理的艰难课程
高一参加NOIWC的经历给我上了沉重的一课。在已经拿到84+20+68分的情况下,最后20分钟贪心想多拿8分,结果因为数组复制导致MLE,最终成绩变成惨烈的0分。看到成绩单的那一刻,整个人像被抽空了力气,躺在考场外的石椅上发呆。
这次惨痛教训让我养成了写"比赛注意事项清单"的习惯:每次赛前在草稿纸上列出常见错误点,包括数组大小、初始化、文件操作等。更宝贵的是学会了心态管理——在关键时刻保持冷静,比多会几个算法更重要。后来NOI2019D2时,尽管身体不适,我还是靠着这套方法稳住了发挥。
6. 团队训练的神奇魔力
高二在八十中集训的一个月,是我OI生涯的转折点。和代晨昕一起刷题的日子,让我们形成了奇妙的互补效应:他擅长思维难度高的数学题,我偏爱代码量大的数据结构题。每天早上的模拟赛结束后,我们就互相讲解不会的题目,下午一起VP Codeforces比赛。
这种团队训练带来的提升远超单人苦练。最明显的改变是解题视角的多元化——同一个问题,我们常常能碰撞出三四种解法。四月份的省选中,我们包揽了广东省前两名,这种并肩作战的默契,后来也延续到了大学ACM竞赛中。
7. 告别竞赛的复杂心绪
站在中科院计算所门口等代晨昕时,突然意识到自己的OI生涯真的结束了。玻璃门映出的人影已经比六年前高了一大截,但心里还是那个第一次写出"Hello World"时雀跃的少年。六年时间,从普及组到国家集训队,算法竞赛带给我的不仅是奖牌和保送资格,更塑造了我的思维方式和抗压能力。
最后一次清理竞赛资料时,翻出了厚厚一叠草稿纸,上面密密麻麻写满了各种算法的推导过程。最上面那张是最近期的网络流笔记,最下面那张则还画着五年级时理解的"机械臂取数字瓶子"的图灵机模型。这叠纸就像个时间胶囊,记录着一个竞赛生的完整成长轨迹。
8. 给后来者的真诚建议
回头看这段OI旅程,有几个心得特别想分享给刚入门的同学:首先,基础数据结构一定要练到形成肌肉记忆,比赛时没时间让你回忆线段树的写法;其次,要建立自己的错题本,我按算法类型整理了200多道经典错题,这对突破瓶颈期特别有效;最重要的是找到志同道合的伙伴,一个人可以走得快,但一群人才能走得远。
记得保存你的第一个AC程序,哪怕只是个A+B问题。六年后当我再看到那个满是语法警告的代码时,才惊觉自己已经走了这么远。算法竞赛是场马拉松,不要因为一次考试失利否定自己,那些通宵调bug的夜晚,终会成为照亮前路的光。