刚好看了一篇网友的博客是关于acm省赛后的总结,觉得自己也有必要总结一下。
从最初的准备比赛说起吧!说到备赛,大概可以算从3月份的寒假开始的,当时才算真正的接触acm,现在想起来真的是起步太晚了,从hdu的1001开始了acm的征途,开始做题的时候真的是煎熬,虽然英语还不错,但是读起题目来已久费劲。没办法只能一步一个脚印,按部就班来做,做了hdu的一些水题后,开始在网上找同类型的题目,基本把poj,zoj,nyoj...都走了个过场.
第一次竞赛应该是刘老师让做的东大月赛了,硬着头皮做了5个小时,一道水题都没过,感觉自己真是太low了,赛后与老师讨论时再看题目发现其实可以过3道的,当时都是一些细节没有做好,第一次教训:做题一定要思路明确之后,再下手开始敲代码。
一个寒假过去,基本做到了一天一道题,虽然基本都是些水题,但是感觉做题并不是那么枯燥的,有时甚至很快乐,准确的说是痛并快乐着。见了一些基本题目大概的能有了做题的方向了,第二点经验教训:坚持才能有做题的感觉与动力。
言归正传回到省赛的话题上,第一次参加这样的赛事,兴奋之情可想而知,同行的学长学姐都十分优秀,他们是学习的榜样。第一天奔波了一上午从沈阳到了大连理工大学,匆匆吃了午饭后,休息一会儿。。便开始热身赛了,从题目一发下来,感觉爽死了,这不是大数的加减乘除嘛!来之前,我把以前写过的代码总结了,然后当成模板打印带来了,其中就有大数的问题。二话没说便决定他两各敲一题,我敲两题。便开始敲了,感觉自己速度已经很快了,提交时发现大工和东大的已经过了好多了,我们提交了好半天还没有返回结果,着急了...(ps:后来发现原来热身赛是人工手判的,真是醉了..)第三点教训:提交完代码之后,不要急于干等结果,静下心来看一题。
虽然已经有了写好的代码剩下的事就是向电脑上敲了,但是感觉速度依然很慢,想了下原因,别人的模板都是大神级别的,而我的是自己的,代码长不说了,而且还有可能有bug,教训之四:平时要多看别人的代码,多积累,学习别人代码的思路,在保持思路清晰的情况下,尽量做到简洁和短小,总结形成自己的模板,这样在比赛时候将节省更多的时间。
第二天早上9点开始正赛了,没有发题之前,先把board的网址登进去了,和提交的程序启动了,虽然时间很短,但感觉这是一个好的习惯。开始发了一本题集,我简单看了下题,发现了b题是二进制转换,没有多想便决定让wxf和hsc看其他题,自己开始敲代码,之前做过不少进制转换的题,带了模板,敲完之后,试了下测试数据,没有问题,提交了,以为肯定是没有问题的了,但是返回的是Wrong Answer!!!再次拿过题来看发现题中有|b| <= 60,以为要考虑负数的情况,所以又花时间想负数情况。看了board,发现f也是水题,让wxf先看了下,hsc敲了代码,提交之后超时,思路没有问题,只是没有用while(cin>>s)或则while((scanf("%s", s)) !=EOF),开始我们和他说,就是不相信。反而产生了埋怨。我改完之后,提交,yes了。一道水题也费了不少时间实在不应该。再次回到b题,还在思考负数的情况时,有人提问发现b是长度,然后在原来的代码上改怎么存那么大的数,用long long就够了,但是交了几次还是不对,最后用移位hsc才解决了,没有用模板,看了下周围大部分人都有好几个气球了,我们还只有一个,惭愧。教训之五:模板虽好,不能滥用,一定要在理解所有题意之后再用,才能省时省力,否则可能过分相信模板,陷入思维陷阱。
两题之后,开始做其它的题,wxf看e题已经有段时间了,觉得可以做,便让他来敲,我看j题,让hsc看了h题,wxf写完之后交了一次,WA了,再次想的时候发现问题不是想的那么简单.我看了j题觉得和之前在hdu上做的一道免费馅饼一题很相似,应该是DP!这时候hsc已经交了好几次了,都WA了,说实话,hsc太爱钻牛角尖了,我和wxf与他讨论,反而让他在一边生闷气了,干脆不做了...一开始觉得a题难度挺大的,让他不要看a题,不如好好再看看h题,一定可以做出来的!坚决不听劝!我和wxf只好都过来看h题了,发现并不是他说的那样的,我觉得就是组合,但是为了保证正确,我只好在纸上先写完整的程序,因为由于反复提交错误,在同样过题数量的队伍中,我们已经掉到最后了。同时让wxf把e题先敲了,敲完之后,我把h题也写的差不多了。看看比赛时间,还有不到1个小时比赛就结束了,只能最后博一搏了,至少把e和h做出一道题,在wxf把e题交了之后返回Wrong Answer 后,感觉真的希望又小了一部分。哎....没办法只能我来敲h题,敲到一半的时候,有人来说已经封榜了!无疑更慌了!hsc已经收拾东西走了,我决定坚持给敲完,过了样例,交上去希望是个yes,但是WA了,彻底没有了信心了。最后走的时候让志愿者给我和wxf拍了张照,后来看了下,我两的脸色真的和丢了魂一样!教训之五:毕竟acm是团体赛,大家遇到问题时心平气和来讨论是必不可少了,就算是楼教主做题时也和队友共同交流,交换思路。觉得xhl,hs,zxw他们做的很好,hs和zsw负责看题和查错,xhl负责主敲,而我们大家轮流敲,其他人也不知道敲的人思路,对了还好,不对的话又得重新看题,费时又费力。
比赛之后知道e题可以用矩阵连乘做,而h题我的思路是完全没有问题的,之所以WA了就是因为开始没有排序,想想原因有二:一,在关于排序的问题上,我和wxf坚持排序,hsc坚持不排序。当时决定先不排序,然后再排序试一次。可是没排序WA了之后就没有再试了。后悔不已。二,个人实力不够,心理素质不够强硬,关键时刻不能坚持自己的观点。
最后封榜的时候,发现冠军是大工软件学院的,前10名中有8个都是大工的,我和wxf打击都很大,回火车站的公交上,与wxf交流,其实如果平时训练够了,e,h,j应该都能做的,这样的话我们的任务完成了,老师的心愿也实现了,书到用时方恨少啊!!!哎.....决定回去大家各自找一部分内容学习,比如我看数论,计算几何,wxf看dp,图论。这样下次遇到在这个范围的题就由各自分别解决。不管怎样回去一定多做题,有时间一起做比赛,明年在与大工相遇的时候也不至于被虐的头都抬不起来,想一想他们软件学院的学生基础并不比我们强多少,之所以能AC10题,是因为他们不断的练习所来的结果。
换个角度思考,被虐成这样,未必不是一件好事,至少它让我和wxf坚定明年再次比赛的信心与勇气,知道自己的实力太low了,还有很大的空间可以提升!人十我百,人百我千,在AC的道路上坚持不懈,一定是大学永不后悔的事。
搜索
复制