Skip to content

大学-我与ACM的缘分

icpc-logo

时间总是过得很快,2014年才刚刚进入大学,转眼间便已然成为一名大三学生。

记得自己上大学前很喜欢看网络小说,对其中所描述的学院生活感到非常向往,父母亲戚在劝诫我不要打游戏时,也常常用上“游戏这种东西上了大学随你打”这类话。因为没有体验过,又因为人们口中的大学生活非常符合我对享乐生活的设想,所以我就把大学当做了一个非常美妙的“天堂”。

而刚上大学的那段时间也确实如此,我喜欢大学自由的上课风格,喜欢寝室无约束的玩游戏环境,也因为远离父母,终于有一种解放的感觉。可人总是有点“犯贱”,以前爸妈不让我玩游戏,我偶尔能玩一会感觉到非常满足,而现在任我玩时,我反而渐渐觉得有些无聊。玩游戏玩到无聊,所以注意力就开始转移到其他地方。我想起了初中时曾经买过c++书籍(虽然就翻了几页,而且还是谭浩强叫兽的),想起了编程这个玩意,所以就决定研究下编程。当时个人对C++这门语言比较认同,所以就准备先去图书馆借C++的书看。

先去网上找了找,大牛们推荐了《C++ primer》这本书,于是我去图书馆借本来看看。去了图书馆后,发现这书已经被人借光了,而空闲的只有《C++ primer plus》。我一看这书好像差不多,而且还加了个plus,好像很高端的样子,于是就开始读这书。这可以说是我的编程启蒙书。这本书看起来只加了plus,但和原来要的那本书可以说是天差地别。plus开始从C-style代码讲起,后面讲再单独讲C++内容。当时我看完C部分就感觉差不多,准备去小试牛刀。在偶然中和一个教编程的老师聊天时,我还非常自信的说“C++其实就是C加一点面向对象的东西”。现在想来,当时的自己不可不谓狂妄自大。C++和C其实可以说是两种风格差异巨大的语言,只是C++兼容了C的内容。

在这之后,一个学长向我推荐了学校ACM的教练,我通过电话并线下到办公室和教练陈老师聊了聊。陈老师给我介绍了计算机能做哪些有趣事情,并介绍了HDU_OJ,并让我去刷一下11页的题目。

我对其中说的一个简单例子印象很深:计算机能完成找迷宫出口。对这件事情我感到很困惑,当时的我知道编程里面有循环、判断语句,还有函数调用,但为什么就这些简单的东西就能完成迷宫中找一条路呢?当时没想出来,后来也因为新生的事情多,把它抛在脑后。

事实上,当时的我其实还什么都不会,11页这个任务也就有空去做一做,没空就拉倒。就这样一直到了大一上结束,我突然发现有很久没和陈老师联系了,于是自己又厚着脸皮跑办公室去找了陈老师。陈老师告诉我,寒假有ACM集训,你可以来参加一下。我一听觉得不错,就答应了下来,就这样,我第一次开始了ACM集训。

第一次集训,给新生讲了搜索的内容。搜索正是能解决迷宫找出口的方法,于是自己仔细听,却发现没怎么听懂。做习题时,别的大一同学都飞快做完5、6道题(zzt,xiang578),我却只能为了1道题而苦苦努力。当时第一次接触到了递归这个概念,也知道了回溯,但对搜索还是不能很好理解。人笨只能用笨办法,自己对着一份搜索代码只能实行单步调试,一步步看递归是怎么回事,为什么dfs在回溯时需要清除清除标记,一道“骨头的诱惑”能让我思前想后始终不得纲领。寒假集训还讲了些其他东西,但具体是什么依然记不太清,但自己对于搜索(或者说是递归)还没有入门。

集训结束后,我坐上了回家的高铁,顺手拿出了图书馆借的《挑战程序设计竞赛》翻了翻并仔细看了下汉诺塔(Hanoi)的过程。或许有些事情就是这么水到渠成,寒假集训半月始终不得要领的递归,在看完汉诺塔讲解以后突然一下子就明白了递归是怎么回事,同时也感受到了递归写法的简洁和强大。火车上只有短短的一小时,但这一小时的顿悟给我彻底打开了编程世界的大门。

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

关于编程,其实我在学算法的时候比学数学抱有更大的热情。数学的推理非常美妙,但也只局限在一个小圈子里的人能看得懂。而编程这个东西可以把我掌握的东西通过程序实现出来,当实实在在的东西出现在电脑上时,我收获的是巨大的成就感,或者说,我能确切感受到我也改变世界的能力。

在这之后,我加入了校ACM集训队,并参加集训。寒暑假教练会在vjudge上拉比赛,平常会安排时间找人讲课,就这样,我大学除了上课,周二下午公休在集训,周四下午公休在集训,周日一天集训,周六一般也会跑去机房写题,人生被ACM充斥了大量时间。在这期间,我也认识了许多集训队的小伙伴,zzt , xiang578 , wtq , godWang 等等。

可以说,ACM是我大学最最值得怀念的一段经历。不愿意整天就窝在寝室和室友打游戏,不愿意选择平凡。也许大学爽了4年游戏,但代价就是,别人本科毕业轻松20~30w/y,你只能拿着5~6k/m苟且过日。是ACM,让我能有机会和一群同类人,为同一个目标一起奋斗。让我能和中国乃至世界相关领域最厉害的一帮人同台竞技,让眼光和眼界没有被学校局限住。时常能回忆起那时的艰辛,当朋友圈里的小伙伴们晒出去玩的照片时,我在coding,当人们早早回家时,我留校在coding,当夜深人静能听得见窗外虫子叫声时,我为了打codeforces在coding,甚至当大年三十、大年初一别人在过年玩乐时,我coding跨年到晚上1点。一个人的道路是孤独的,但ACM集训队是不孤独的。和集训队里的小伙伴成天在机房切题、吹逼、订外卖,一学期除了睡觉,待寝室的时间远远少于呆机房的时间,经常切题到晚上近22.00,学校基本没人,我们才慢悠悠回寝室。也正因为ACM是一个3人组队的比赛,所以当我定下了队友之后,我们3人经常会一起出行,这种一起在ACM路上前行的感觉真的是–“You are not alone”。

细细回想起搞ACM的目的,曾经有段时间是想让自己的简历增添色彩,可当我真的投入进去以后,哪怕最后没有得奖,我也无悔大学ACM经历。

我的比赛情况是比较坎坷的:

大一下,老师为了提高我们积极性,让我和几个大一的去参加华东理工邀请赛,水平差距较大,无奈打铁。大二上,学长们拿了一块regional金牌,获得了EC-final名额,鉴于他们退役,老师便把这个名额奖励给了我们队,我第一次在上海见识了中国最厉害的大佬们,但结局也是实力不够,无奈打铁。大二下参加了浙江省省赛,拿了铜,算是发挥失常。大三上(2016)是我决定搞ACM的最后几次比赛,我队首先是去了大连站,大连站水题比较多,但我们队手速不够快,想得也不够快,所以无奈爆0。那次是信息学院副院长和我们一起去,让我们体验了飞机去大连,陆地交通全程打车,想想也是挺对不起这个待遇的,这个成绩太不理想。

然后就是我队参加了北京站的比赛,鉴于这估计就是人生最后一场ICPC,我把它当做了自己的退役站来对待。学校没有足够经费给我们,所以我们买了Z字头的火车,订了RMB300不到一晚的宾馆(那可是在北京!!),火车很艰苦,宾馆更艰苦。Anyway,我们周五早上到了北京,中午我哥请我吃了顿火锅,晚上PKU的同学请我和我一个队友吃了顿香锅,PKU的待遇还是给的很好的。我们实际就只在北大吃了一顿饭,又因为教练没来,所以我们在食堂的人均消费预算达到RMB80  。记得周六热身赛结束后在食堂,我们把有的菜每个都拿了一份,吃得是非常开心。

周五晚上回宾馆后我拿出PKU去年的题开始研究了一波,感觉拿个牌非常容易啊,周六做了热身赛,原味是原题,感觉也还好,晚上回去因为有点累,网上找了热身赛的题研究了一会就睡觉了。第二天早早来到邱德拔体院馆休息,比赛开始,前两题都非常水,我和队友各撸一发以后排名还可以。第三题是道预处理的搜索题,队友写了以后发现wa,小改以后TLE。我看了他打印的代码,并互相查错以后交了还是wa。这时候就很尴尬了,感觉从我们的思路上验证并没有问题,我自己看了函数也没什么问题,然而为什么还是wa呢?这时候,另一个队友灵机一动造出了一组数据,并指出了我们的问题,我们在修改以后终于成功AC,幸好啊!!

在准备开第四题时,我们发现第四题只要有提交的队伍,最后都AC了,没有队伍卡住,于是我们判断这可能是道sb题。在读完题目以后,我们怀疑样例给的并不一定是答案的上界,可能后面还有答案。于是我先上去打表并尝试将样例作为上限提交,我心中想着这肯定是wa,所以敲得也比较随意,结果很自然的得到一个wa,于是我们开始认真搞。搞了好久,都搞到最后1h了,我们还是没有什么特别好的思路,这时,队友上去看了一下我的代码,突然发现我里面有些循环顺序写错了,在修改以后提交竟然神奇AC了。woc,我当时真的是一脸懵逼,因为这个,我让我们队wa一次并多思考40min,总计罚时有60min了。而在封榜前,4题靠前一点就稳铜了。如果因为这个原因导致我们队没有夺牌,那这口大锅我真的要背了。于是我尝试再过一题,时间只剩约30多分钟,而剩下那题封榜前大概只有20来个队通过,这题过了我们就能稳银,但由于时间比较紧张,我一时半会想不出完整的思路,最后10min只能放弃。现在我们只能祈求别的队4题罚时多爆炸一些,在比赛结束之后,PKU搞了一个游戏对抗赛,我们就当看个热闹,然后是滚榜,当滚榜到铜牌确定以后,我和队友激动地抱在了一起,我们确定有铜了!之后就是颁奖,然后我们去赶火车回来,火车上晚上兴奋的只睡了2h,久久不能平静。

acm_pku_1

acm_pku_qiudeba

acm_pku_bronze

大学ACM生涯结束了,能以一块区域赛bronze告终,虽然不是很好但也算给自己一个交代。在这之后,关于考研还是工作确实没有想好,不过生活开始回归平静,把前段时间落下的Maching Learing课程补起来,把书架上堆了好久的书看起来,大学,继续向前走。

最后,用李开复老师的一句话来勉励:“世界因你而不同”。

 

One Comment

  1. ryan wrote:

    日常学习打卡,羡慕博主这么厉害的人

    星期四, 3月 29, 2018 at 21:31 | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*