感谢胡大佬的模板参考。
2021年12月4日,南京区域赛结束,同时结束的,还有我的两年多的ACM生涯。 接下来的寒假重心会向着找实习的方向努力,当然明年的区域赛、final以及明年的省赛等等,我都会去认真准备。
这篇文章会写什么
关于我
- 我的ACM历程
- 我的ACM成绩
写给新人
- 什么是ACM
- ACM能带来什么
- ACM和其他竞赛有什么不同
- 什么样的人适合ACM,什么样的人不适合ACM
写给ACMer
- 关于训练
- 关于赛中
完结撒花
这篇文章更多来自我自己对ACM的观点,如果和你理解不同,请见谅。
关于我
我的ACM历程
进入大学之前
在2019年进入大学之前,我只是一个普普通通的高考生,学的是理科(物化生),对竞赛一无所知,可能知道数学竞赛,物理竞赛,却不知道五大学科竞赛的信息学竞赛,也就是OI。
高考填志愿的时候,在我选择计算机专业的时候,连计算机的概念是什么,你要问我为什么填计算机专业?答案只是因为高薪工作,但高薪是有高薪的理由,想必进入计算机专业的同学深有体会。
大一
大一上我上了王慧燕老师的C语言高级程序设计,那是我第一次接触程序。和每届新生该开始一样一窍不通,甚至连简单的输入输出都弄不明白,英语又不好,啥都看不懂,心想完了,我是不是真的不适合这个专业?
结果新生赛给了我一个“完美”答复,“牌王新生场爆零了。”很多人看我现在有一点点成绩,可却不知当时的我是什么样子的。爆零意味这什么?学院8,90%的同学都能过写上1题,而我却1题都写不来,我的室友一个一等,一个二等,还有一个和我一样,当时的我和第三位室友比赛结束后散步,“我是不是不适合学计算机”?“我真的不适合学计算机吗?”后来秉持着和高中一样的信念,“我不信我比别人差!”,更是萌生出参加ACM这样含金量极高的竞赛。
在那之后我更加努力,胡大佬也十分鼓励我,感谢胡大佬。
当时报了ACM寒假集训,因为只要撑过七天就能进集训队,人一天一天地变少,第七天只剩下3个人,我,还有我的一个队友,也是当时新生赛的冠军-站神。之后集训队要求组队,站神在知道我新生赛爆零的情况,毅然决然地邀请我组队,我也欣然接受。当时这个决定改变了我ACM的历程,如果没有和他组队的话,可能我们寝室三个人就一个队了。还有一个人是他们班班长(简单带过~
就这样,第一届粉红毛毛兔集结了。
大二
大一暑假还没开始,班长大人就决定不打ACM了,现在只剩下两个人,找了当时大三的爽哥组成第二届粉红毛毛兔。
大二前的暑假开始了,(ACMer没有暑假)整个暑假经历了牛客多校和杭电多校两个自闭式训练,因为算法什么的都还没学,并且全国985、211学校基本都来了,所以我们多校成绩非常难看(不想回忆)。但是也很感谢多校的机会,让我成长了很多。
在之后的比赛,拿下了我第一块浙江省赛铜牌,ICPC区域赛济南站铜牌,ICPC西安邀请赛铜牌,还有好几块铁牌,并且很幸运地和彤哥一起参加了EC-final,也成功地打铁,其实每场都很有机会拿牌,我觉得原因出现在题刷的不够,参赛经验不够等等。
寒假的时候我和队友也成功地把codeforces账号刷到蓝名。大一选择了数学方向,大二更是学了图论、数据结构、dp等等(字符串gou都不学)。
大三
大三刚开始,因为爽哥大四了,需要找实习工作,所以就退队了,还差一位队友,找了yyds的fjh,fjh当时的acm成绩可能没有很出众,但是我能看出来“他很强”,事实来看,确实很强,因为他总能在比赛中带来惊喜。
重组队伍之后,也把队名改成了锟斤拷之烫(Runtime Error),也不知道为啥取的这个名字,队名总是出乎意料地产生了。
我们比赛基本集中在大三上学期,因为队伍里有两个要找工作,一个要考研,所以比赛能先打完就打完。
大三上总共拿了CCPC广州站银牌,ICPC沈阳站、南京站铜牌这样的几个牌,没想到的是,CCPC成绩居然能破校史记录,感谢fjh能很快地1发过了C,这样我有更多的时间去解决第四题。可惜fjh被沈阳制裁了。
我的ACM成绩
到目前为止,总共拿下了1块CCPC区域赛银牌,3块ICPC区域赛铜牌,1块ICPC邀请赛铜牌,1块浙江省赛铜牌,还有数不清的铁,寒假的重心会放在实习方向,明年还有区域赛,省赛,CCfinal等等比赛,未来在有可能拿到offer的情况下继续参加ACM竞赛。
(感谢pku给了我们第一块铜和第一块银,所以我能进北大吗???)
写给新人
什么是ACM
来自百度百科,国际大学生程序设计竞赛(英文全称:International Collegiate Programming Contest(简称ICPC))是由国际计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛,赛事由AWS、华为和Jetbrains [5] 赞助,在北京大学设有ICPC北京总部,用于组织东亚区域赛 [6] 。
简称:三个人一台电脑,需要在5小时内解决10~13题。
ACM能带来什么
物质上来说,ACM能带来无寒暑假、无周末休闲时间、面对学业上的压力还要继续坚持下去。
精神上来说,我永远喜欢过题的快感、思维的巧妙、算法的智慧。
知识
举个例子,不打ACM的人,没有几个人会快速幂。但是对于ACMer,下面是我们能接触,并且部分都会的算法。
但这些只是我们应该会的,最基本的知识。这些知识带来的财富,我写一个项目的效率远超其他人,这就是差距。ACM的知识点,只要你未来是做计算机行业的,那么它一定会在每一个角落里发挥着它的作用。
代码能力
调试是写程序必不可少的步骤,有的人可能因为编译错误而烦恼,有的人可能因为各种bug而烦恼,而我们基本不需要debug,只需要简单测试证明即可。
朋友圈
我是浙江工商大学的一名学生,通过ACM,在各种群聊中,因为兴趣相投,我能认识到很多大学的好友,比如广东工业大学、青岛大学等等,而且能经常和非常nb的人交流,什么是nb的人:可能是中国顶尖的人才(当然这些人基本都是清北浙大等等)、代表中国参加全球性竞赛的“神”。并且ACM在各大知名企业都非常有名,如果你拥有一块ACM铜牌,大厂简历没问题,如果拥有一块ACM银牌,进大厂的概率大大提升,如果拥有一块ACM金牌,全国500强没问题了,如果有用进world final的门票,世界500强随便挑。而对于正常学业而言,各位也应该知道你需要读多少年的书才有胆量往这些企业中投递一份简历。
和清北复交同台竞技
ACM竞赛是所有队伍在相同地点使用相同设备在相同的时间内解决相同的题目。
而你的对手则是来自全国的大学,对,北大清华每年都会来,而且非常重视。
ACM从来就没有院赛、校赛、省赛等等一大堆乱七八糟的东西,虽然他们确实存在但是他们并不是被官方承认的。ACM只有区域赛,(比如Asia-East东亚地区),区域总决赛(比如EC-finial,东亚地区总决赛),和世界总决赛(WF)。无论在哪个比赛,你都可能会遇到任何一个学校的队伍。所以在这样的比赛中,你可以很清楚的知道自己的水平在全地区范围内的位置,对自己的能力有一个更好的评估,能够看到外面更加广阔的天空。而不是拘泥于那么小的一个地区,争夺那么毫无意义的第一名。
ACM和其他竞赛有什么不同
除了ACM以外,我也打过其他竞赛,比如数学竞赛,物理竞赛,数模等等。
ACM是比赛开始,中间5小时,结束之后奖项基本确定下来(根据排名),即时性非常高,并且没有任何主观的评定奖项。
而现如今的比如说互联网+,挑战杯、包括数模(可能会好点),在我看来基本都是ppt、论文大赛,获奖完全根据评委老师打分,非常的主观。
有人说,你有没参加过,你怎么知道这里面的含金量。
那就拿我自己来举例子:
首先ACM的含金量非常高,不断训练了两年只拿到过一块银牌。
而数学建模美赛,首先我没有任何基础,也没有参加任何培训,其次疫情原因,学校不让线下集训,所以一切在线上进行,线上老师要求写几场模拟赛,我们队伍由于各有各的事情,都没有参加,但是认真分析了几份优秀论文,最终情况是什么呢?整个学校没有队伍获得O奖,只有两支队伍获得F奖,我们就是其中一只队伍。我们有参加模拟赛吗?没有。我有基础吗?没有。但是我的两个队友是有基础的。但是我们为什么能拿到这样的奖项?因为最后交上去的只有一份论文而已。面对万份论文,老师真的会每份花很多时间观看吗,那必是不可能,所以有同学想要在数模比赛获奖,我想下面几点足够了:选比较客观的题目(这样结果就不重要了),指标越多越好、公式越多越好、图要越多越好(因为图片的视觉效果非常直观),论文的基本排版、格式等等。这样的一篇论文,甚至数据都可以伪造,我想一定能获奖。
什么样的人适合ACM,什么样的人不适合ACM
ACM竞赛是一个需要大量的时间去投入,但是到很久之后才会有结果的产出。简称高付出低回报。这和其他竞赛不同,数学建模通常你只需要很短的时间训练就能拿出成绩,而一个ACMer,在大三之前甚至可能都没有一点点成果。但是你在大一大二的投入终将会给你在大二下至大三上的时候带来丰富的回报。
这样的回报,需要愿意投资的人耐心投资才有可能赚得盆满钵满,一旦出现懈怠都有可能颗粒无收。耐心、专注、勤奋、自觉这些是一个ACMer必须要具备的因素。
写给ACMer
关于训练
我们是一只稳铜队伍(毕竟在诸神之战中存活过),但是想要冲击银牌需要看场次,银牌题如果是我们熟悉的那还可以,但如果没见过的就gg。
首先是每个人负责的算法部分:
我主要负责数据结构、动态规划,会数据结构、树上问题,,了解图论、计算几何,死也不学字符串。
yl主要负责数据结构、图论,树上问题,会字符串,动态规划,死也不学字符串。
fjh主要负责图论、搜索、动态规划,模拟、会树上问题。
个人的训练计划:
大一大二上主要是学习算法,不要学习unless algorithm,大二下主要是刷题,刷各种题型,因为知识点就那么多,题目却很多,那就是套路问题了。
大三需要练的是手速、思维、补题和回忆算法,所以codeforces是必不可少的。
我很反对无效刷题,当我们刷完一道题,明白这道题的方方面面。我自己目前刷题量是1900,而我的一个队友刷题量连我的一半都没有,但是我承认他比我强太多,每次比赛都是他给思路然后carry全场,而我只是一个无情的代码机器。有的人刷题量非常高,成绩也没有特别高,面对一道见过的题目,能很快的写出来,但是遇到一道全新的题目,却没有任何办法。这也就像我们学习一样,不能死学习,要活学活用。
队伍的训练计划:
每周都会单独开一场往年区域赛训练,并且实验室周末组织一场往年区域赛,这样我们队伍会保持每周2场。
有时间都会开开cf的模拟赛等等。
关于赛中
首先是看题,看到一道题目一定要先看数据范围,因为往往都能根据数据范围来算出时间复杂度,然后读完题之后大概就知道用什么算法去解决。
在前期,签到题一定要快,如果够强的话,铜牌题也应当如此,可以尝试三开,除了在最后冲刺阶段,请务必尝试多开,即使排名倒数,一道题大概40min~1h一定要解决,千万不能死在一道题上,这个错误我深有体会。
队伍里要有一个很强的代码能力的队友,要学会听懂队友说的思路,然后在短时间内完成解题。
完结撒花
ACM只是大学生的一门竞赛,虽然能在其中感受它的智慧,在以后的工作中也经常会接触到,但是他毕竟是一门竞赛,仅此而已,千万不要把它当作什么毕生追求,只要努力过,奋斗过,不管得到什么样的成绩,都要不后悔,因为竞赛的含义,有的人会成功,有的人会失败,不是所有人都能拿到自己想要的成绩,最终还是要回归自己的生活。
jujimeizuo@2021/12/5 14:10
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2021/12/05/myacm/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!