校赛打完,已过四月,该是准备背起行囊,踏上考研之路了,自然,得先阔别一下ACM了,想起这几年ACM路,感慨颇多,不得不一诉心肠,与大家分享一下我的ACM历程,如果有人能从此文获取一些益处,那我就很欣慰了。
如果说作为一个做了快两年ACM的一个ACMer来说,我并不是成功的,至少在我们学校不是,或者说,是失败的,我说的失败并不是体现在没有得出很好的成绩,而是体现在自己进步的缓慢上。进步的缓慢是可以通过rating图看出来的,现在看着自己的rating图,往往能回想到当初一步一步走过来的艰辛与快乐。对,ACM是辛苦的,但有时快乐的,我想大多数ACMer都是喜欢上了AC之后的快感之后才慢慢的喜欢上ACM的,没有人天生喜欢去做算法题,只要你喜欢,你投入,你就可以获得收获,进步的快感也是令人兴奋的当你发现自己的水平在一步一步地提高后,你会越来越自信,越来越喜欢上这项竞赛。但是,很多事都是符合马太效应的,强者愈强,弱者愈弱,ACM好像也符合这个规律。
我是在大一的时候才知道ACM的,当时还不让带电脑,同学带了电脑,然后突然有一天推荐我上OJ,我当时都不知道OJ是啥,后来在机房上了一下才知道,原来是做题的网站,然后我凭借刚学的C语言写了几道水题,兴趣一下来了,此后,我经常去机房做题,因为在机房带的时间总是短暂的,所以我或者把题记下来,或者是打印下来,在纸上写出代码,再抽时间去机房敲到电脑上运行,再交题,有一些对了,有一些会错,于是还得改,又拿回去改。就这样,一个本子很快就写完了。于是,就这样,我爱上了编程,爱上了ACM。
到大一下学期,傍了一个大三的学长,打校赛,基本是他单挑,不仅进了决赛,还拿了三等奖,我和我一个好朋友当时真的只是端茶倒水读读题而已。当时有一种想强大自己的欲望,于是开始学习很多算法,虽然很多都学得不是很懂,毕竟基础不够,然后就到了暑假集训,跌跌撞撞进了暑假集训,可是还是很弱,于是各种排倒数光荣的被刷了。后来就回家去了,本来可以呆在学校继续跟着训练的,但是感觉还是跟集训队的人融不到一起,没什么共同话题,并且不太喜欢里面的气氛和环境。回家也没闲着,天天组织大家(群里面的)刷水题,开始群里有一个比较厉害的人,也跟我一起刷题,刷了大概半个多月的水题,还学了下数论,但是感觉进步还是不大,唯一的进步就是手速提高了。当时我有一个幼稚的想法:当时的水平只能出CF的A,B两题的,于是我去练手速,争取快速过掉A,B两题,,现在觉得是多么的可笑。至今可以在hust vj上看到我放过的手速场。。
然后开学后本来打算放弃了的,去搞了一下工程方面的东西,可是下半年的一场趣味赛自己做的还不错,又把瘾给勾了起来,到了13年12月份,我才真正开始系统地学习算法,要说我的ACM之路从这里开始的都能说得过去,我的博客也是在那段时间开通的,当时只想开个博客来记录自己的算法学习心得,没想到今时今日,此博客已经成了如此模样,世事弄人。
14年算是进步比较大的一年,这一年学了不少算法,水平也开始见长,顺利的进到暑假集训,然后幸运的获得了区域赛名额,为什么我说幸运,这是有原因的,我在队里负责数据结构和模拟等码农类的题,什么数学啊,DP啊,图论啊,都玩不动,图论还好点,搜索也还行,结果最后一场网络赛,我这个数学若菜,居然推出来正确的公式,然后写了一发,挂了一发,优化再交,过了,凭借这题,我们翻身了,本来是排名末尾的,眼看就要没戏了。就这样糊里糊涂地进入到了区域赛准备阶段。既然上天如此安排,那么自有他的道理,我们后面只好加紧训练了,到11月份,参加区域赛,由于最后一题脑子混乱,居然没看出来一道几何,本来版都带了,于是遗憾拿铜,事实证明,出来混,总是要还的。不过好歹是拿过奖了。
区域赛完以后,就开始松懈了,然后一度没有做过题,最后寒假集训个人赛的时候由于DP真是没入门,导致各种被别人踩,各种排名末尾,当时一度绝望,回家后的集训也是,各种被人踩,在家里看了很久的DP,题做了一点,不是很多,所以还是没怎么掌握。最后来到学校,就准备校赛了,慢慢的,因为自己保研希望有点小,还是选择去考研了,于是比赛,题都没怎么做了,最后校赛成绩也不是很好,就这样,我差不多结束了我的ACM之旅。
纵观我的整个ACM历程,我觉得自己失败的因素主要在以下方面:
1.数学基础太薄弱
初高中以来数学就是很一般的那种,不太会用数学来分析问题,高数更是学的一坨屎。其实,个人感觉这个竞赛拼到底拼的还是数学,数学没那么好的话,智商高也行,不过大多数人的智商应该都差不多吧,所以说,如果你感觉自己智商不是很拔尖的话,那么还是把数学学好吧,不管你搞不搞ACM,只要你是搞工程技术方面的,数学是最基本的技能了。为什么数学那么重要?举个例子,一个贪心,不用数学分析的话可能就靠灵感,感觉怎么贪对就怎么贪,贪错了大不了再来,但是如果你用数学的知识推一下,你就会迅速地得到一个正确的贪心方法,既不浪费时间,又能保证正确率,何乐而不为呢。
2.没有与人多交流,走的弯路太多
这方面是一个比较大的原因,开始的时候一心想着刷水题就是一个例子,对待一个可能不那么容易理解的算法,没有攻克的决心,想着这个难,先学另外一个吧。算法学习也仅限于理解而已,没有能够很好的应用,满足于刷一些模板题就够了,总之就是一句话,中上等的题做得太少,思维锻炼不够,代码能力锻炼不够。其实溯其根本,还是一个不肯直面困难,不自信的问题。
3.浮躁
另一方面就是浮躁了,学东西总是浮在上面,浮沙怎可筑高台。任何一个技能或学科,都像一个金字塔,塔基越广,金字塔尖才能堆得越高,所以,基础才是王道。
虽然我的ACM之路失败了,但是我依然不后悔我做了这件事,不后悔我选择了这样一条路,现在想想,玩ACM的日子依然是快乐的。况且整个经历给了我更多的思考,思考怎么学习,思考怎么做事,思考怎么做人。
如果你是一个正在玩ACM的ACMer,希望本文能够帮助你。如果你不是,并且有你自己的想法,欢迎一起交流。^_^
2015.3.22