弱也有弱的ACM经历
作为一名弱校的acm渣渣,在经历了三年的acm生涯后,现在终于要毕业了,最后也来总结下自己在这几年中做acm的经历与感受。以下是参赛总结:
2013年:
ACM/ICPC长沙邀请赛(打铁=_=)
ACM/ICPC区域赛湖南赛区(打铁=_=)
湖南省赛(银)
湘潭邀请赛(铜)
蓝桥杯(省二)
2014年:
ACM/ICPC区域赛上海赛区(继续打铁...)
蓝桥杯(国二)
湖南省赛(金)
2015年:
区域赛长春赛区(银)
区域赛上海赛区(铜)
湖南省赛(金)
其他一些小7788的小比赛就不赘述了,反正最后还是怪自己能力有限啊,看到学校新进的一批一批新生,不得不说自己还是实力太弱。。( ˇˍˇ )
写到这里,相信很多大牛看到了都会不屑一顾吧。。
但是,作为一名弱校的ACM选手来说,这对我是足够的,尽管前两年的成绩并不理想,但是随着自己的努力,见证了学校实力的成长,也见证了自己的成长。
ACM是什么?
经常有从未接触acm的同学过来问我,acm是什么? ?为什么要搞acm??感觉你们搞算法的好厉害啊,那个很难吧??
但是,刚进大一的我也同很多人一样不知道acm是什么,只是因为加入ACMore协会,跟着学长的要求来练习,并且从刷题的过程中可以得到AC的快感。随着慢慢接触的多了,参与各项ACM的竞赛中去之后才慢慢理解为什么这门竞赛活动如此多的人参与:acm竞赛不同于其他竞赛,在有限的时间内通过三名队员的配合解决不同难度的题目,并且可以实时看到自己代码的返回结果,这让acm竞赛以它的公平性与高效性区别于其他的各门学科竞赛。
为什么要搞acm,首先得要知道为什么会有acm竞赛,广为人知的是,现在各大互联网技术都代码 时间更快、内存更小、代码更短, 这样的代码才是公司、企业所希望员工写出的,而这就需要有较强的代码逻辑能力,较好的数据结构基础,较好的算法思想。而acm这项竞赛就提供了这样一个平台让在校学生学习如何优化代码,学习更加高效的算法解决相同的问题。
学习算法并不厉害,谁都可以学得来,但这并不代表算法就是很容易的,相反的,算法是一门很深的很难掌握的思想。那么搞ACM难就难于坚持,坚持学习算法,得到的是思考问题的方式的转变,强迫写出更加高效,更加简洁的代码,这就是我们的最终目的,也是最大的受益。
c语言刚学会输入输出的我当时就被学长推荐着去做HDU 11页的题,当时就觉着看到AC的时候就是最开心的时候,最疯狂的时候,曾经在纸上写好代码,下晚自习有半个小时在机房敲上去提交。。。后来过了四级不用晚自习,自己买了电脑后,就经常带着电脑到机房刷题。。。大一下的时候甚至体育课也翘掉刷题,那时候我的一个感觉就是,怎么每次到机房都能看到浩神(ps:把我“坑”进协会的那个学长),后来慢慢才了解到原来他就是我们学校ACM的 实!力!代!表!!一直都在膜拜,从来没想过超越。。。orz
刷完学长给新生(我们)安排的100+题(全是A+B类的水题)后,顿时感觉自己信心爆棚,决心要一直学的更多。。(ACM这东西就是越学的多,就越觉得自己知道的少。。。),也正是这样,开始被学长,教练慢慢认识,有幸参加了大一下的长沙邀请赛、当时学校去了3个队,全!部!爆!0!!被虐的死的心都有了(居然连一道签!到!题!都!没!有!)。
大一参加的大大小小的比赛也不少,自己现在都记不清了,,,也许正是因为这样,身边有这么一群人有事没事开开玩笑,一起训练,一起刷题,自己才能坚持下来的吧。。。。
现在知道ACM是什么了吗??O(∩_∩)O哈哈~ 还不知道请自行百度:ACM/ICPC
怎么训练ACM?
大一暑假是这几年经历的最漫长的一个暑假,不仅在于每天洗宿在机房,吃饭在食堂,更是因为相互出题,相互逗逼,,每天都可以学到A题的 新姿势 ,同时为了应付下一学期的省赛,时间安排的很紧凑。说到比赛,说到组队,能够找到两个和你有同样兴趣的人也是很重要的,有了相同目标,有了相互的契合,有了时间的磨炼,每个人都可以学到更多。
大二上有幸拿了省二后,慢慢身边越来越多的人开始做自己的事情了,有自学的,有打游戏的,也有 加“实验室”的。我们学院的实验室不多,但是他们直属学院管理,而我们属于协会,大一下学期开始身边越来越多的人开始考虑加入实验室,做一些系统应用,做一些嵌入式有关的内容,最初我也很眼红,甚至还报了名,加了java实验室,可是经过一段时间,我发现那里根本找不到我想要的 “快感”,根本找不到其中的乐趣所在。然而,搞ACM更多的不同在于,到了某个阶段。绝大多数的内容都要靠自己学习,自己去啃书,啃博客,啃各大OJ。大二我也在迷茫期,只可惜迷茫的时间太长了一点,乃至大二的时间进步很少。
在之后的时间,随着与队友的密切配合,逐渐找到了刷题状态,校内队员之间组织竞赛,校外组队与外校队员竞赛,在竞赛的过程中积累经验不仅可以看出自己与外校的差距,同时也可以增广自己的见识面,是自己学习的更加广泛。
至于训练,我所学到的东西都太简单,也有很多没有贴到博客中来。 建议参考 浩神的博客、kuangbin大大 。。。看看大神的刷题历程,也可以看看其他大神的刷题总结:一位ACMer过来人的心得、
我的算法学习之路。。。网上诸如此类的博客有很多,甚至还有很多高中生的刷题日常,大家都可以去借鉴一下,这就要靠自己的挖掘了。
这里贴上一句kuangbin大大的名人名言:
人一我十,人十我万,追逐青春的梦想,怀着自信的心,永不言败
这里顺便给几个刷题网站:HDU(国内最大)、codeforces(全球人都在用)、VirtualJudge(这里可以自定义比赛)、hihocoder(这里的学习计划挺好的)。。。
进实验室跟搞ACM有矛盾吗?
这是必然的,实验室会敦促你在规定的时间内作出什么成果,集训队(深入学习算法的校级组织)会要求你在一段时间内掌握某部分算法,这两者都需要花时间与精力来打磨。想要在某一方面有比较好的发展,必须自己花时间去学!而我,听从了自己内心的声音,从容的选择了后者。
ACM给了我什么?
这里首先要讲的就是,ACM让我大学生活变得充实(这句话我说的一点也不虚,发至内心)。实习期间,有一个外校的同ACM选手给我讲:“大学毕业,突然不刷题了,总感觉有些失落”。大概这就是真爱吧O(∩_∩)O
另外,非常现实的问题就是,“这个竞赛花了我这么多时间,对我的考研或者就业都有帮助吗?”
答案是肯定的,ACM刷题对我来说不仅仅是充实生活,不仅仅是德育分加成,更加对我学习能力是有帮助的。如果你选择的是要去毕业后就业,那么这正是公司看重的,相对于你做过多少系统,学习到了多少语言,知道多少框架,更加看重的是你是否能在较短的时间内学会公司所要求的内容,做出来的产品(这里指代码)是否能够满足公司的要求。而这些,正是一个人能力的体现。而如果你要选择的是考研,首先一个关键就在于外加成,一个学生只有一流的成绩是不够的,学校会考重你有多少活动加成,这里就包括:校院活动、学生事务、学科竞赛等。如果你这两项都满足要求的话,那么恭喜你,你拿到了学校的保研名额,不用再受准备考研的痛苦日子。
现在学校一届比一届要强,希望学校的ACM发展越来越好~~
最后还是必须得感谢一下队友的支持,完美的配合。还有感谢胡老师的耐心帮助,没有胡老师的帮助,想必也不可能取得这样的成绩~~~
希望以上的内容可以帮助到大家(fresher可以看看,大神随便在下面吐槽几句就好啦~~)