ACM生涯回顾总结

来源:互联网 发布:网络电视全民k歌 编辑:程序博客网 时间:2024/05/21 09:52

         从初入大学对算法几乎一无所知,到ACM区域赛银奖,这两年多的时间,我在ACM队学到了很多。

         进入大学以前,我们初中高中都曾经讲过VB,而我对编程的了解,也仅限于交换两个数字和三种基本排序,但排序是没写过的,只是知道算法思想。刚进入大学,我希望可以学更多知识,兼职导员便给我推荐ACM加上队里的一些“忽悠”,我就加了,如今我应该感谢那些忽悠过我的人,在ACM的这年多,我确实学到了很多。

         刚入协会,队里学长告诉我刷Uva,当时试了一下,第一个题就卡住了,然后就搁置了好久。后面的一段时间一直在听协会的讲课,然后写协会讲完挂在学校oj上的题,那段时间有很多东西真的是闭门造车。当时我在完全没有看过代码的情况下,自己手写了大数的加减乘除,最后也有尝试乘方,但是写迷糊了,后来题目截止了就放弃了;还有一个例子就是,我用了三天的时间,不停的尝试和思考,自己想出了最大连续和的动态规划解法,那三天真的走路吃饭都在想最大连续和,我也一直坚信自己能够做出来。那段时间我自己写代码真的是一点资料都不查,就是不知道做题还能查资料那种状态,然后忘了具体什么时候我开始重拾Uva,我也是不查资料,最多就是抱着紫书在那啃,然后就是刷题,(尴尬的是一开始我连紫书上有题目翻译都不知道),然后我一个挨着一个刷,卡题了就各种改各种重写,我当时的想法就是不能漏下什么,直到第三章最后一个题改了十几遍一直就是不过,问学长他们说可以先跳过去,我还是不时回来想这个题。至少整个大一上学期,我写代码从来没有上网查过什么东西,也没有想过参考别人的代码。应该说这样的做法是让我受益了,我一直到后来组队乱搞的思路一直不错,自己把思路转换成代码的能力也比较强,但这也是副作用的,那就是效率问题,我由于一直一个人一点一点的死抠,基础是比较扎实了,但是进度却跟不上啦,别人还没放寒假就开始讨论bfs、dfs的时候,我却还停留在第四章呢,当然,进度跟不上还有一个原因就是寒假,别人寒假刷题修炼呢,我却在家光顾着玩了,懒确实一个限制我发展的重要因素。还有一点限制速度的问题就是C++,当时紫书第五章是讲实用主义C++,但是我看了什么都不知道,结构体的构造函数就让我不明所以了,更不用说STL了,这一块直到我大一下自学到类那一块才解决,这时候已经是大一下学期了。

         寒假回来以后,我还是这样不紧不慢的刷,教主也说不着急是好事,但是需要的时候还是得把进度赶上。过了一段时间,很多人都陆陆续续的够题数进集训队了,虽然听说有人是贴代码贴够数的,感觉教主也在暗示我可以贴代码了(只要后面再补上来就行了)但我并没有这样做,我不想用作弊的方式来给自己争取机会。那段时间我也尽量多拿时间刷题,晚上上完自习后去机房刷到十点半,但这样一晚上也就一两个题,一直到省赛选拔我还是四五十道题的样子,我也就没办法进队,赶上最初的集训了。最后应该感谢荣哥,到了省赛组队的时候,荣哥以个人赛第一的身份成功的没有选到队友,队里的人数正好最后一个队差一个,然后荣哥就找了我,我就这样不明不白的进队了。我是高分进的学校,现在却有一种比他们差好多的感觉,我一直想证明我的能力,于是到了省赛,理所当然的炸了,130多个队,我们打了100多名,这下我心态更炸了。然后我退了集训队的群,不再跟队训练,然后再去刷题,去一点一点的练,我当时的想法是到暑假之前刷够题数,暑假能光明正大的跟着集训队集训(其实没人会关注这些问题,但我非常在乎)。教主也开导我说我们打省赛应该是看了一场西洋景,做什么样无所谓的,我跟教主说了我的想法,但是我还是坚持自己的决定。之后的一段时间,我真的感觉自己很拼,大一下学期是我们学院课最多的时候,几乎每天上午三四节和下午一二节都有课,而且那个学期我选了五门公选课,我就中午吃完饭直接去办公室(在新闻中心的福利,我大二寒假才买的电脑,一直用新闻中心的电脑敲代码用),敲两个小时下午直接去上课,晚上上完自习再在办公室写到十点半,学知识,找水题,赶进度,这段时间我是一直没有去过机房的。但这样过了没有多久就感觉累了,真的有种身心俱疲的感觉,后来到期末考试前为了复习不得不放弃刷题了,但那段时间真的感觉无颜面对教主,也感觉自己很失败。最终暑假还是允许我留下来了,像上次进队一样,我还是没有够题。暑假前的这段时间,学的很快,感觉不大扎实,而且感觉当时很多精力都花在了找水题上,并没有学到太多东西,但是在题数的压力下,却又不得不这么做。

         到了暑假集训的时候,这段时间是能够完全沉下心来只做一件事情的时间,现在想想那段时间真的很珍贵,很关键。那段时间进步很多,学到了很多,暑假打了很多比赛,随机组队和个人赛,个人赛当然就是一个人写,随机组队的时候,我基本上每一场都会参与写,我认为这也是很关键的一点,一定要写,代码能力都是在写的过程中一点一点提高的。暑假我的问题就是没有早点找队友,想找的时候他们却都已经组好了,最后是我们三个计算机的组一起,却也没能一块去比赛。暑假阶段感觉自己能力提升了不少,但题数仍然没够,也越来越意识到跟其中一部分差距很大。

         又开学的时候,就各种事情各种忙,当时留了部长还参加一个数学建模,很多事情,所有刷题的时间又少了,本以为题数不够不会有比赛打了,但是赶上加了一个EC,我问了一句就让我去了,只是是和两个新队友,我们现场第一次配合,有一次理所当然的炸了,这又一次让我有深深的挫败感,别人拿牌,我们却只能看着,那种感觉真的不好受。但是其实,在那次比赛前我很长一段时间没有写过代码了,热身赛的时候连最进本的DFS就写错了好几遍,再加上我们队是临时拼的,所以打好了才不正常。这段时间进步极其有限,只能说当部长以后麻烦事太多了,用在ACM上的时间也很少。

         大二下就是省赛之前的准备,还是因为题数不够的问题,教主说我按照15的要求来,但是要跟15的组队,组队的过程比较复杂,但是最后证明,这次的组队依然不是很成功,我们知道最后一场组队赛之前还没有确定省赛的席位。备战的过程就是一直打训练赛和刷题了,这个过程也没什么好说的了。然后在省赛的比赛过程在中,我个人心态还是没有调整好,虽然知道我们队的实力是很难拿金牌的,但还是定位太高了一点,当看到周围的队实际上打的比我们强的时候心态还是有点失衡,我们在赛场上还犯了一个错误就是使用了没有用过的模版,这个模版是错的,这个题知道比赛快结束才A掉,这直接让我们掉队。我还犯了盲目开题的错误,我盲目的尝试了一个题,事实证明这只是浪费时间。结果当然就又比较凄惨了,我们只拿了铜。这一段时间其实也没多少可以总结的,提升也不是很多,而且因为学生组织那边的事情还是时间上比别人也欠缺一些。

         第二次暑假集训,我们还是参与随机组队,这个时候组队的基本都是15级的学弟学妹了,所以组队我很多时间都是占着键盘的,只有少部分会来跟我“抢”,所以我一个假期下来写的代码很多,能力的提升也是不少。其实感觉跟上一个暑假差不多。只是这次在教主的干预下选到了不错的队友,不得不说这一方面教主的判断还是很准。

         然后就是十月我们去大连打区域赛了,这是我唯一感觉成功的一次比赛吧。第一天热身赛我们直接秃了,心里已经凉了半截。但是第二天一开场确实各种水题,而且这一次出奇的顺利,我们没有给自己挖坑,所有题目都是1Y,水了几个水题以后,我们遇到一个题目题意没有弄清楚,最后我把锅甩给队友了,他们好像也是猜的意思,竟然也是1Y。然后到还剩一个多小时的时候我们A了第六个题,这个时候从榜上来看,我们已经基本稳铜了,第七个题我看了下感觉有思路,但是时间复杂度感觉不能通过极限数据,无论怎么优化感觉都不可能,然后队友鼓励我先写出来再说,一个小时左右写完稍加优化……竟然又A了。然后我们就没有接着搞,最后我们是手速银,零罚时。随后的时间我仍然在跟队训练,然后我们申请了打EC,但是队友两个坑跑去济南考口语去啦……当时听说我要单挑,我是拒绝的。而且这一场题目贼难,最后我A了两道题,在榜上排第四,但是却因为罚时太多没有去成。这个阶段的训练其实也没有太多可以说的,只是选对了队友,选对了赛区,成功水到一个奖。

         最后做一个总结吧,我觉得这两年来最重要的就是两个暑假,这是一段可以集中精力去搞一件事情的时间,这是整个两年成长的关键时间,可能一年中其他时间加起来的提升都没有暑假四十天的提升多(寒假如果自己能利用起来另说,那当然更好,虽然在家,但也是一个集中的时间,帮助也是非常大的)。然后个人发展最重要的还是思考和自己独立的去写的过程,这不是看A了多少题,而是自己思考出来多少题的思路和解法,自己独立的完成了多少代码,在没有看别人代码的基础上。思路是从易到难,一点一点积累出来的,必须自己想了才能真正吸收这些东西,代码能力也是一点一点的练出来的,在这个基础上去将知识面拓广才能更好的发挥作用。当然这只是我的看法,我是这样一步步走过来的,只是知识面拓广这一步充其量算是刚起步,我的ACM生涯就到头了。对比赛来说,组队也是很关键的一环,我只有最后拿奖的这一次算是比较成功,之前虽然也有能力问题,但我们还是在配合上没有能够发挥每个人的长处,而最后一次组队,我们不管结果怎么样,内部交流协作一直比较顺畅,我们也做了一些分工,而我做主写手他们对我的帮助确实很大。

         其实本来没想写这么多,也写的比较乱,最后还是感谢在这条路上给过指引和帮助的(教主、高神等),也感谢我区域赛的两个队友。ACM带给我的不只是一个区域赛银牌,这两年多收获的知识和能力才是最宝贵的。

原创粉丝点击