这是一个非正式总结,我想大概用非官方语言(没有感谢党和国家的话语),总结一下这次比赛的过程以及相关的感受。
这次比赛是东亚大陆总决赛,是比区域赛还叼的比赛,有两百多支队伍参赛,而且清华上交等名校都派了好多队伍,巨巨们都在,可谓是强手云集,杭电这种的知名院校,一队也只能获得一枚银牌,所以参加这次比赛,我是根本没有报什么希望获奖的。
比赛是12月13日正式开始,12月12日热身赛,然而我12月12日还考雅思。。。还好口语安排在了之前几天,不然跟比赛冲突就不好了,这也是天助我也。因为准备雅思的缘故,我一直没有跟队友合练,周五晚上就奔波去了苏州,周六考了半天雅思,下午直奔上海,最后热身赛结束的时候赶到了赛场,看了一下环境。大家都很淡定,因为我们都是抱着旅游学习的态度来的。
不说废话了,直接说比赛了。
开场几分钟,我们都在看题,然后教主看着看着发现一道水题M,这个时候清华把A题过了,马上M也有人过了。于是我和胡牛去读A题,教主继续搞M题。很快我们读懂了A的题意,在思考解法的时候,教主M也快敲完了。然后此时发现A题只要凑出1~n的累加就行,于是根据等差数列公式,直接对给你的那个数N,N*2再开个根再floor一下就是解,因为数据范围给的10的18次方,两倍的时候不会超long long。恩,就是这样,很快我们就做出来了,O(1)的时间复杂度,纯水题,有的人还用了二分,虽然标准答案也是二分,好把愿意用也可以,反正这水题随便搞搞。然后我迅速敲完,一交,WA!!!!我就日了狗了!!!这怎么会WA!!!这个时候看了一眼代码,艹,原来是PE了,输出的时候忘了打Case :#1这些东西,直接出的结果。。。。。现场比赛竟然犯了这种不可饶恕的错误。。。。。于是马上改了Case,交上去,YES了,此时我的内心是崩溃的,要是因为罚的这次时导致最后题量够时间不够,我就是罪人了。
然后很快教主的M题也弄完,一交,又是WA!!!两个水题都没1A,这次比赛的状态真的是有点爆炸,我没读M题,相信队友一定能A,然后我直接去做L题了,然后教主和胡牛在检查M题的错误,很快,检查出来了却又迎来两发WA!!!一个M题竟然WA了三次,我有点坐不住,跟队友一起看了M题,于是我重新读了一遍题又跟他们合了一遍题意,又出了几组测试数据,好吧,找不出错误,然后不知道是谁突然发现6个人的时候最少的情况是做两个。。。。所以应该mod的是3。。。好吧,大家都脑残了。改完交上去终于YES了。M题都能卡,我觉得我们可以退役回家了。。。
队友搞M题的时候,我弄的L也基本有了大概的思路,就是判断任意两个数,对他们分解因数,然后确定出唯一的一张表来,根据这张表去匹配其他数。胡牛拿到这道题,有个更好的优化方案,于是这个题主要交给胡牛了,他在敲,我在一边帮着检查。咔咔三下五除二敲完,debug了一番,差不多,交呗!duang的一个WA!!!直接砸脸上!然后我对比赛基本不报任何希望了。。。好吧,冷静冷静冷静冷静冷静。。。打印出来代码,我从头一个字母一个字母的检查。。。然后突然胡牛发现了一个bug,那就是给出两个数的相对位置,并不能确定出唯一的一张表,我之前的假设是错误的(心好痛)。。。于是加个vector存了一下有几种可能性,都要判断一遍,这下以为没问题了,又交了一发,WA!!!真的很不能理解这一发WA了,于是我又打印了一份代码,又从头开始看。。。看着看着。。。发现了一个别扭的地方,下面有个地方判断了dx和dx是否>0而上面有个地方理应对应也判断一下,好吧,改好了,交不交呢?反正WA了这么多次了,不指望拼罚时了,交!然后又WA!!!!T_T这一发WA真的让我有些绝望了,此时离比赛结束还有两个来小时,我想到了长春站的bebug一道题3个小时到最后然后挂掉的感受,难道这次要重现???我们出了无数的测试样例,全部正确了,难道代码有毒?好吧,再看一会代码。此时我上个厕所冷静了一下,然后站起身来拿着代码瞧啊瞧,终于又发现了一个别扭的地方,上面size>1的情况考虑了因数可以倒过来的情况,那么size=1的时候难道不需要了吗,我把这个想法抛给了胡牛,虽然我一时间给不出反例,但是总觉得哪里不太对,胡牛立马发现确实是这里错了,并且给了个反例,于是改把!改完了交!终于YES了。。。。。
YES完,快封榜了,看了一眼排名,哇靠,没牌子了,呜呜,又要铁了,不过离比赛结束还有一个来小时,看看哪个题能做呢?开D题把。在我和胡牛搞L的时候,教主把D早就读了,跟我们一说题意,我一看给的数据范围,靠,一共13种钱,最多不就1+2+3……+12种可能的情况嘛,还想啥,暴力打表,用脑子一个个算把,1分钟算一个最后也差不多时间够了,我抢过键盘,开始一个个的推导,胡牛和教主对我提出的办法很质疑,觉得容易算错,于是他俩在想用其他办法解决这个问题,我管不了那么多了,直接上去干这道题了,亡亦死,举大计亦死,有药就吃,万一能治好病呢。我推了一小半的时候,他俩发现了题目中的一个关键的地方,那就是你可以用第一次买东西找回来的钱再去买,还有这破条件?艹,我于是开始从头推,结果发现有了这个条件,推理的反而快了,因为答案不是0.01就是0.02,我用了10分钟打好了这张表,测试了一些数据debug了一番,貌似没啥问题但是总觉得哪里不太对。。。管他的,交!当一个绿色的YES蹦出来的时候!卧槽!这都可以!哈哈哈哈这题tm是什么东西哇,这就YES了?
此时已经封榜了,不过,过了4个水题,我隐约的感觉到了Cu可能有了。离比赛结束还有半个来小时,再接再厉把,再开个题,看了一下B和F的情况,B和F过的人数差不多,但是B的总提交量远大于F,于是我们决定开F,大家开始读题,然而时间不多了,读到mod1000007的时候,胡牛就知道这绝壁是个DP题,然而并没有心思去做题了,我开始双手合十,祈祷其他队伍别把我们顶下去。剩下的时间太少了,要是还剩一个小时,这个F题或许最后也能搞出来。最后看google人给的题解的时候发现B是个二分的水题,二分那个结果,用结果模拟就行了,这么水的题,比赛里就没读。自己还是太水了,在AML卡的太久了,导致后面我喜欢的二分和胡牛喜欢的DP题都没时间去读去思考,如果顺利打下来,这两个题应该都能A了的。
不过最后靠4个题混了个铜奖,自己也知足了,也蛮开心的。巨巨们不要嘲笑我,我可是菜菜,但是菜菜也有自己的世界,一个EC-Final铜奖对于我这种上了大学编程0基础,从大二开始会用for循环,搞了一年ACM的人来说,我已经非常满足了。
回想起这一年的ACM历程和我的收获,我真的非常非常非常非常非常非常非常感想我的恩师:老李。老李是我们学校的研究生,也是一位痴迷于ACM的人。虽然我们学校也是个211学校,但是ACM方面的比赛学校一向不重视,反而对。。。“蓝桥杯”。。。你懂得。。。是自从他来了学校,ACM才算有了起色,我也有幸成为了第一批认识他,并成为了他的学生的人。第一次见老李,他开始教我用hdu,跟我说oj是什么意思,哦原来是online judge的缩写,然后让我做hdu11版的题目,并给我演示如何submit,当一个Accept返回的时候是多么的喜悦。虽然我看的云里雾里,但还是渐渐熟悉了这个平台。然后就是每周晚上的补课,晚上9点,在学院的一个小教室,我们许多对这个比赛感兴趣的同学聚到一起,老李在黑板上,用粉笔给我们写一道一道的题目,我记得是从dfs开始教的然后bfs、二分、优先队列、并查集、线段树、状态压缩、快速幂等等常用的基础算法,实话说,他上课讲的东西,我一次都没有完全听懂,对于一个刚会用for循环的人来说,你能指望他看懂dfs嘛,但是只能佯装着听,好吧,我就这样慢慢地入门入门,我记得有一次,我在做一个百万级输入的题的时候怎么做都做不出来会TLE,后来很不服的把代码发给了老李,然后他让我把所有cin和cout改成了scanf和printf,从那以后,我才知道原来cin和scanf还有时间上的差别……巨巨们看到这绝壁要嘲笑我了。。。。没错,一年前我就是这么菜,菜的我自己都觉得可笑,虽然现在也还是有些菜,但是跟那个时候没法比。。。今年跟老李一起打了两次比赛,都遗憾的铁了,非常非常遗憾的铁,是那种后悔一辈子的遗憾,但是人生有时候就是这样的戏弄你,你不去面对是不行的。时至今日,我是有老李的支持才有的今日,真的不知道该如何感激他。我们获得的奖牌,也都不仅仅是属于参赛队伍的,更熟属于他的。
我觉得每个人的人生都会有遗憾之处、闪光之点,都会经历所谓的高潮和低谷,但是经历过的人再回首往事,可能会发现,这个故事本身就是Life。