我的ACM生涯

起笔于2020年12月27日夜

我的ACM生涯结束了,准确地来说,这段不算太长的竞赛生涯在一周前的下午就结束了。
我本不打算去写这段文字,因为我对于最终的结果其实并不是很满意,但是在晚上夜深人静的时候,我还是会想起那些时光;在打代码切算法题的时候我还是会很专注很快乐;这些点点滴滴真的不应该被忘记。
转眼三年时光就快过去了,回望过去,感概万千,谨以此文纪念我短暂的ACM生涯。

最开始接触算法竞赛是在高二,我觉得我是幸运的,能在浙江这样一个信奥大省读书,我曾听过不下十人跟我抱怨他们在大学之前根本没有接触过编程,更不要说算法竞赛了。但是呢,我就读的高中虽然是重点高中,但是之前完全没有参加NOIP的经历,也不重视这方面的竞赛。不知道为什么在我高二那一年有一位数学老师突然面向全校开了一门课就叫NOIP辅导,我听到「编程」「算法」这两个关键词后毅然决然地报名了,当时全校一共有五个人报名,还有一个中途退出了。

由于学校没有信息学竞赛的经验,也没有教练,我那一整个学期学习就是基于那本紫色的《信息学奥林匹克竞赛一本通》自学,教练的水平其实没比我们高多少。显然,这样的学习导致我们的学习进度十分的缓慢。我不知道那句 #include<iostream> 到底代表什么意思,在学习汉诺塔的时候我也不知道为什么写一个 solve() 函数然后调用三次就可以完成如此复杂的问题,不难想象你让这样一位高中生去学习动态规划是什么样的场景。尽管我对算法很痴迷,每个晚自习都会花至少一节课来自学,甚至会在纸上写代码,但是一个学期的时间我对算法竞赛的掌握程度应该也只是停留在最简单的模拟题这种程度。后来报名了NOIP提高组(我也不知道为什么敢给我们报提高组啊),结果不出所料,四个人全都没过初赛。

后来高三了,我也就再也没翻开过那本书了,不夸张的说,高中毕业后我连 Hello World 都不会写了。

要说高中的这段经历给我带来了什么帮助,我想大概是让我在之后学习算法的过程中见到诸如「贪心」「递归」「动态规划」等名词的时候不至于太陌生吧。

上了大学之后,通过我们班班长得知了我们学校有一个叫ACM集训队的组织,并把我拉到了ACM集训队招新群里,我也是第一次知道了 HDOJ ,知道原来大学也有算法竞赛。群里说第一次招新是在国庆假期后,报名要求是在 HDOJ 上 AC 30题以上。当时也没多想什么,反正自己挺喜欢算法竞赛的,就先学起来嘛。我还深切地记得我的第一个程序 a+b 是在高铁上写的,当时因为不知道极为先进的 HDOJ 需要用 while(~scanf()) 来读入导致一直不能通过,就这个问题我解决了一整个下午。刷的水题其实并不能给我带来什么印象,但是我尤其记得我在图书馆九楼的那个下午,我花了一整个下午去理解快速幂的原理,在彻底理解之后,真的,可以说我真的被算法竞赛吸引了,被那些美妙的代码吸引了。如果说计算机是人类智慧的结晶,那么算法及其代码实现就是对计算机的最好致敬。

选拔那天是一个周三的下午,题目不是很难,我做出来了一道字符串模拟题,一道计算 ASCII 码和的题目,还有一道推公式的输入输出题,最难的就是一道 BFS 了。最后关头我想去写那道俄罗斯方块的大模拟,然后发现自己其实没有任何的代码能力,写到最后也没写完。

巧的是,那场比赛的 Rank1 是我的现队友,前云南省队队长 wrf (当然了他虐场是正常的,毕竟当时大家都没基础),我因为运气比较好排名第十 (后来机缘巧合地再去比赛页面看了一下,我莫名其妙地又过了一题,所以其实真实的 Rank 应该是第四) ,所以第一次选拔就进队了。

其实我是完全没想到自己能进的,因为确实在刷题的过程中遇到了许多的问题,而且自己也什么都不懂,真的是运气比较好吧。

接下来的一学期其实蛮快乐的,因为没有比赛的压力,自己就像一张白纸,什么都不懂,可以全心全意地去学习新算法。真的,每学到一个新的知识我都会感叹一下人类的智慧,然后开心好一会。我还记得当我自己敲出用矩阵快速幂求斐波那契数列第一亿项的值的时候,那天晚上我高兴地没怎么睡觉,我在为能学习这样一个强大而巧妙的算法而高兴。

一个学期的学习让我对于基础的知识都有了一个了解,搭配上教练的专题训练,我的代码能力也有了不少的提升,那个学期最焦虑的时候莫过于期末那几天的多校训练选拔了。由于集训队人多座位少(其实就算座位多,组太多队伍也没什么意义),所以每年暑假前会进行4-5场个人排位赛,选出最强的39人组成13支队伍,当然组队方式是自行组队,然后参加暑假的多校训练。选拔前的半个月时间我其实都挺焦虑的,晚上睡觉也睡不好,一直在担心自己不能留下来。最终打完的排名是20多,反正就是那种不算很差但是也不出众的水平吧,当时就安慰自己能留下来就好啦。

打多校真的很累,第一次打多校的时候大家都很菜,经常就是一场比赛三四小时在自闭,这种感觉其实很煎熬的,就好像有个人一直跟你说你好菜啊你好没用啊。熬完了全部二十场多校训练,也算是学了不少知识吧,但是那一年的多校我们根本没意识到补题的重要性,所以其实学到的东西有限,队伍和队员个人的上限并没有太大的提升,这也是需要反思的一个地方。

开学后的经历请参考 2019ICPC南昌打铜记录 ,总之就是很失败,赛前觉得稳银的,没想到开场读错题导致打了个铜。

其实大一过后教练基本就不怎么会管队员的训练了,但是大家也丝毫没有懈怠,一个比一个能学,一个比一个勤奋。这也是我喜欢ACM集训队的原因之一吧,这里真的聚集了全校绝大部分最优秀的人。

接下来我花了一个学期去巩固基础算法,又花了一个学期时间专攻图论算法和计算几何。其实说起来我和图论的缘分在刚入队没多久就建立起来了,在刚接触到这样一个十分抽象的知识的时候真的是不知道如何下手,于是就去问了一下教练,他让我去注重建模的意义和方法,这让我之后对图论算法的学习有了一些比较深入的见解吧。

第二年暑假多校的组队,我先是找了手速极快并且基础知识扎实的 lmj 同学,他也是我们队的主代码手。然后就是上文提到的 wrf 同学,他是我们队的百科全书,掌握的极多的算法知识,思维敏捷。在打多校时我们吸取了去年的教训,注重补题,并且详细地写题解,加深对题目的印象,详情请见 2020ACM暑期集训实录

我对于我们队的实力是很有信心的,没有什么短板,综合实力不弱,在 2020 浙江省赛稳定发挥拿到金牌之后我们更加自信了。紧随其后的 CCPC 绵阳站我们离金牌差了不到二十分钟的时间,最后那道规律题有几个公式没有推对,遗憾拿银。然后是 ICPC 上海站,各路神仙打架,600+的队伍发 35 块金牌,加之全员智商不在线,发挥奇差,最终铜牌耻辱下播。一周前的 ICPC 南京前期挺顺利的,然后一道 DP 卡了不少时间,最后关头又败在了规律题上,五分钟后赛后一 a ,遗憾银首收尾。
至此,全剧终。我的 ACM 结束了,我也光荣退役了。

要说没有遗憾,那肯定不可能,谁不想拿一块区域赛金牌呢。但是竞技项目就是这样啊,运气也是实力的一部分,赛后五分钟过题又怎样,有时候差的就是这一点运气。但是我丝毫不后悔这段经历,我想这应该是我人生中最为重要的几段经历之一了吧。我总是会感叹老天自有安排,我小学的时候不学英语导致我升初中的时候被分到了我们那个教育集团最差的初中部,但是由于学校太差导致我连续五个学期都是年级第一,常常被老师特殊照顾,所以去了重点高中。高考的时候没发挥好,让一个本来很想出去看看的孩子最终来到了杭电,却机缘巧合地让我接触到了 ACM 。我很感谢学校和教练给我们提供的优秀的竞赛环境和政策支持,我们的这些条件可能是大多数竞赛生想都不敢想的。我相信老天自有打算,现在的遗憾和不甘也许也都是命运的安排呢。

我记得之前教练在给我们讲课的时候用的是一个退役多年的学长的博客,名字叫「夜深人静写算法」,他当时跟我们介绍说:这位学长已经退役很多年了,但是不知道什么原因又重新写起了博客,写起了算法,而且写的很清楚很仔细,连错别字都没有,于是我就联系他说想用你的博客给学生上课。
我现在回头想想,是非常能够理解那位学长的心情的。他可能就是在某个夜深人静的晚上,脑海里突然闪过了某一个算法题或者某个算法,然后重新开始当年的学习过程,有感触了就写了一篇博客,写完一篇之后便一发不可收拾了。这确确实实是算法的魅力,这不是竞赛带来的,这是算法本身带给我们的。

这是一个越来越卷的时代,我完全不否认,20届的新队员有20多个是有 NOIP 基础的,甚至20届的二队在第一次参加 ICPC 区域赛就拿到了金牌。ACM 这项竞技活动对于零基础选手的门槛可以说是越来越高,但我不是在劝退各位读者,我相信大有人不是为了那一块牌子而去学那些算法的,被算法所吸引的人也有许许多多,大家千万不要因为竞赛没有一个好成绩,或者觉得这个竞赛太难而放弃了学习,那就本末倒置了。热爱才能给你带来快乐,不然你不会愿意每天刷题到一两点,不会愿意即使要睡在实验室还要打晚上打 Codeforces ,不会愿意没有寒暑假没有周末没有中秋国庆地高强度训练,这不是高中生的竞赛,大家拼个你死我活,私以为这是一项由发自内心的热爱所驱动的团队合作游戏。毕竟高中时大家一起讨论数学题的时候很少有人是真的喜欢数学,但是大家一起讨论算法题的时候是真的热爱算法啊!

我可以很骄傲地说,我的大学生涯,甚至说是我人生中最光辉的时光,就是和我的队友们一起打 ACM 竞赛的日子。我还是很喜欢我们的队伍名:「我们都有光明的前途」,即使是退役了,我也还是这么希望的。

在过去的三年里,感谢我的队友们对我的包容,也感谢集训队的同学和教练给予的帮助和鼓励。
我并不是一名成功的竞赛选手,难免有对自己不满意的地方,但是我在集训队的后浪身上真真切切地看到了自己希望成为的样子。接下来我还是会继续学习算法,可能在某个夜深人静的晚上我也会写上一两篇博客来记录我对算法的理解。

我的故事结束了,接下来就是你们的故事了。
再见了,那些南征北战的生涯;再见了,我人生中最光辉的时刻。
最后,衷心祝愿杭电 ACM 重回巅峰,再创新高。

Edwiv 停笔于2020年12月28日夜

订阅评论
提醒
9 评论
内联反馈
查看所有评论
SherlockOuO
18 天 前

大佬,好强啊!

victoria
2 月 前

关注小哥的网站很久啦 终于鼓起勇气留个言 今天刚投完阿里人才培养的简历 希望自己也能像你这样优秀!加油!

victoria
回复给  Edwiv
2 月 前

竟然被翻牌子了!太激动了!我一定是在做梦

Ccy
5 月 前

加油呀大佬

ZigZagK
5 月 前

泪目QAQ,学长加油

Elise
5 月 前

冲冲冲!!!以后也一定要加油鸭!

三三
5 月 前

哎,看完这些文字,感慨颇深