哈尔滨地区赛已经结束一个多星期了,应bf大牛的要求,写篇比赛总结。顺便总结下自己大学三年的ACM经历,希望能给ACM的师弟妹们滴点帮助…
一、初识ACM
刚来大学,完全不知道编程是什么东西,只是听师兄说大一的C语言课很重要。于是乎,很努力的学C语言。学期快结束时在室友小东那得知有个叫ACM的程序设计竞赛,对编程的提高、算法(那时还不知道是什么,只知道是很高深的东西)研究以及逻辑思维有很大帮助。而且宿舍室友志同道合,于是宿舍四人都设定加入ACM队的目标,计划寒假回家自学并A题。(但寒假回家只有小东一个人做了10几道水题)
第二学期不久便迎来了ACM校赛,我和小东、CQH组队参加。只是知道ACM简单输入输出规则的我们,比赛时做了几道水题就拿了个奖(好像是一等奖)。校赛后并没有被招进ACM队(其实那时候学校ACM队没有集训室,都是自己找资料,自己上网做题,不会的自己搜报告),仍然是自己看看数据结构,做做题。而我又特别的懒,那一年花在ACM上的时间很少。暑假集训由于个人原因没有参加,在家也只是做了几道水题而已。
直到大二第一学期末,韩总找了我们几个大三和大二在断断续续搞ACM的,要求我们寒假回去做题。希望在下学期的校赛取得好成绩,参加省赛。寒假在家又看了一点书,做了几道题。
大二下学期,期待校赛期待了很久,直到临近省赛才开始。校赛的网络赛都是水题,惟一一道不是水题的由于数据比较弱,也被我水过了(也是由于快速的A了那些水题,得到了William大牛的欣赏)。正式赛时我做得很差,勉强进入前六。
二、ACM之旅
08年校赛过后,就同William和HJR大牛组队,正式加入我们整支队就HJR大牛实力最强,我和William只会A水题。HJR大牛比较内向,对省赛很看重,他的紧张和保守也给了我们莫大的压力。省赛只是做了四个水题,拿了个铜。
省赛过后主要的是应付课程了,花了一个多月时间看书、复习,考了个不错的成绩。(搞ACM要选择性的去上课,但千万不要挂科,挂了科你要得浪费时间在重修上。)
省赛过后集训队有了自己的集训室了,而接下来的暑假有了比较正规的训练。暑假的训练使自己提升了很多(整个集训队的队员都提升很多),给自己滴点信心去参加08年的地区赛。地区赛前,由于有新秀的出现,我的队员变为William和DieIng,地区赛前疯狂的训练,使我们整只队总体实力大大提升,团队配合也有很大的提升。
08年地区赛网络赛五个赛区的出线名额都拿到了,而且合肥可以去两只队。由于经费和实力问题,我们队选择了比较近的残疾人赛区--合肥。整个比赛我们两支队都很郁闷,实力加运气都不好,最后我们只是勉强拿了个铜。
三、ACM又一阶段
08地区赛过后的目标是下一年的省赛,我和William把它当成自己的退役赛,希望能有个比较好的结果结束自己的ACM之旅。我们按着08地区赛分的方向,每人努力精攻自己负责的方向。DieIng负责图论,William负责模拟题和组合数学,我负责DP(和贪心),而我自己也开始学点图论,看点杂细的东西(如hash、二分逼近等)。省赛前的珠海给了我们一次练兵的机会,正常发挥。省赛时只是做了几道水题,另外该出的题没出,拿了个银。就这样退役,虽然很不甘心,但地区赛需要把机会留给师弟们去锻炼,。迟迟不愿写总结,想让这样经历默默的埋在自己心里)。
之后便进入应对学期课程的忙碌和暑假的实习。虽然认为自己ACM之旅已经结束,但还是喜欢偶然上OJ做做题。暑假实习被BS后,回家过最后的暑假。临近开学,突然收到DieIng大牛的短信,希望一起组队参加地区赛,我不喜欢自己去占了师弟去参加地区赛的机会,就同DieIng大牛说我考虑下。之后又接到韩总的电话,一直都受韩总重视,不好意思拒绝,加之对DieIng大牛仰慕(凭他自己一个人单挑地区赛应该可以拿个铜,希望我和july的加入能使成绩有所突破)就答应了。
之后是边找工作,边抽时间训练… (哈尔滨地区赛的准备,虽然是抽时间的,但到临近比赛时基本是每天一场,慢慢的练出感觉…)
四、哈尔滨地区赛总结
(copy july的,略做修改)
前序
比赛前一切还是很轻松的,在机场很荣幸的被学校acm的鼻祖ziliang给忽悠了。
比赛在体育馆看上去还是很爽的,能感受赛场上那种氛围(不想省赛)。这个赛区的参赛队伍是史无前例的弱,看不到那些强队PK很可惜。但试机时的题目很难,三道题我们只出了两道,然后试试各种错误就结束了。试机后我们认为隔天的现场赛题目应该也比较难,出题数相对会比较少。(罚时应该会拉开差距)
现场赛
比赛开始照例july看前,DieIng看后面的,我看中间的。E题题目很长,我大概扫了一下,看F题。A题july一看有两个数独的图,直接交给DieIng,DieIng扫了下output看到是求解的个数马上得出结论:不会。F题没看多久,DieIng就操了一声,振奋人心,说K题水题!同我讲了下后就敲,(我们采取多次出数据,晚提交少罚时的策略)我出了点数据,过了,提交后很快就秒了。B题是一个简单的DP,july同我们讲了下,DieIng讲了下他的想法,用dp[k]记录当前去k能获得的最大值,我想了下状态转移,同DieIng讲了下,又很快被秒了。之后我继续看F题,DieIng很快看穿了J题模型,讲了下,算下复杂度用KM没问题,DieIng就上模板了,我帮忙差错,(只是找出一个小错误,另一个没找出,结果导致一个WA),又秒之。之后刷了下board,发现D题有两队过了,july同我们讲了下题意,然后去推I题,DieIng大牛认为费用流可以建模,但好像复杂度太高。我和他研究了一下,可以只枚举源点,之后上模板、建模、测试。又是1Y。没想到平时训练频繁wa的我们现在1Y率还是很高的。
4题出后大家剩下的题都很少人出了,大家又分开了想题,过了n久,直到进入G的死区。G题july跟DieIng讨论后是直接在trie树上搜,刚开始觉得会超时,但看那个edth最大只有2,所有还是可以的。DieIng先上了他的模板,july写了个dfs,剩一个来钟,我们觉得只攻一题,所以我也加入了G题,然后发现了种种问题没有处理好,我们一直边说边改来改去了,感觉乱七八糟的,最后都不知道改成什么样了,调到最后还是没调出来。
结果就这样拿了最后一块金。一个几何,数论…都没人会的队伍也能拿金…这个赛区的参赛队伍真的是史无前例的弱。
后记
比完又留多了一天,又可以当是去旅游。在哈又不下雪,一坐火车走就来暴雪,60个小时的火车很恶心,除了吃喝拉睡就是打牌,韩总教july打牌时说,这其实也是一种数据结构...(Orz韩总)
五、ACM总结
回望自己的ACM经历,总结如何搞好ACM,如下:
1、 尽早行动,结缘ACM
可以从做题开始,先拿水题练编码能力,然后看数据结构,继续练题…
2、 坚持
结缘后,要坚持,刚开始的很长一段时间可能很难看到成果,但如果你坚持了,时间长了,自然会有一个质的飞跃。(不要像我一样,断断续续的搞ACM,那样提升很慢,一段时间没做题了,再做题又得重新找感觉。)
3、 乐于同他人分享
如果可能,多和周围的同学一起训练、切题,也可以学DieIng大牛他们一样联系其他学校的大牛一起切题,讨论。多同大牛没交流,有些题目你想很久都没结果,但经大牛点拨,立刻明白,而且以后遇到同种类型的题也很容易想到。(和DieIng大牛一起训练学到很多)
多写解题报告,最后写思路,而不要贴代码。每做一种类型题后,写下总结。每段时间的训练后写写总结。
4、 不要放弃课程
其实很多课程会用到算法,而ACM的很多题是课程里出现过的模型。成绩不错也能让你请假更容易,也不需浪费时间在重修上。
5、 让ACM成为一种习惯
让ACM成为一种习惯,即使不参加ACM比赛,有空上OJ做做题,巩固下编码的感觉,锻炼逻辑思维,让思考问题如何建模成为一种习惯。
GDUT_longshen
2009-11-16
posted on 2009-11-17 21:49
longshen 阅读(4787)
评论(1) 编辑 收藏 引用 所属分类:
acm总结