万万没想到,拿金了。区域赛的金是一直想拿但是一直觉得自己可能拿不到的,最后居然拿到了,开心之余感触颇深。
还记得西安打铁之后的那个晚上,心里想着铁都打了,可能就没有第二场了,但后来冼老师问我们原本我们下一场是北京的,问我们要不要调到上海,那天晚上和队友三个人讨论了好久好久,去上海有足够的时间再训练,去北京的话上交的题比较有保障,几经纠结,敲定了去北京,人生做的决定里可能最对就是这次了。西安回来之后,我们三个人都有去思考为什么会在西安打得那么差,董老师说的其实是有一定的道理的,我自己做题的时候其实是有点单挑的性质,很多时候自己想到的思路被自己否决,于是也没和队友讲,后来回来的训练赛里,无论自己的思路自己觉得对不对,我都说出来和队友交流一下,说不定激发队友的思路,说不定队友激发回自己的思路,我觉得这一点真的很重要。
好吧,写些北京的流水账。星期四的火车,星期五上午12点多去到北京火车站,惊诧于那里2元随便坐的地铁,几经辗转去到酒店住下,放下行李然后就去签到。走去北京师范的路也是蛮难记住的,幸好有二队带着。北京师范确实是个充满情怀的学校,给的袋子里有谷歌的笔记本,还给我们四个队送了两套它们学校的手绘明信片,这就是情怀,一个有情怀的学校就是让人感到舒服。饭堂倒是没有什么情怀,说好的20元的饭票,换来的是奇怪的套餐,而且一张20元的饭票只能换到一瓶饮料。然后晚上就直接回酒店。
第二天早上开了套水题大集合的比赛练练手,然后下午热身赛。热身赛上来就是一道数数题,数整本习题册里有多少个ACM...然后我就认真的一页一页的数。。想想也是醉了。B题是判一个数的素因子个数是不是素数的水题,但貌似直接写的话1要特判WA了一发。D题是给你一段C++程序,让你判程序能不能在有限时间内结束,这种神题明显是不可做的,一看T<=3,就知道这题是用来测服务器压力的,也就顺着枚举了2^3,第7次交的时候过了。C题题意是让你构造n个数的数组,连续的p个的和大于0,连续的q个的和小于0。一脸构造的样子,最后YY了好多发现都是有问题的,后来不断有队伍跑去我们后面(中大一队)翻开他们的代码来看,于是我也过去偷拍了两张照片,听到用了队列,wj突然get到了差分约束,对的,这题就是传说中的一脸构造的差分约束题。回到酒店研究了好久才get到怎么做,心里觉得这题好神。
正赛的早餐在庆丰包子铺吃了6个包子,觉得这包子铺其实真的挺不错的,然后就走过去赛场了。这次开场吸取西安的经验,因为平时我是看前面,zb看后面,wj看中间的,所以当前面有水题的时候就经常比别人慢一点,这次我负责输密码写头文件,zb负责由前往后看,于是zb也就顺利的看到了A的签到题,zb写签到题一直都是很稳定的,我头文件都没写完zb就开始敲A,然后没多久1A,这个时候我们看了下榜,K过的人多,zb和wj在讨论,于是我也就去看下别的题好了,他们讨论了一下get到个O(n)的做法,zb上去敲然后也欢乐的1A了。zb敲的时候wj给我讲了下H的题意,我一看ai<=10^6,这不是很简单的一个O(nm)的题么(赛后题解是不依赖ai的范围的,ai给那么小也算是照顾大家了。。。),然后zb写完我就上去写H,虽然复杂度感觉略大了一点,但是写完也1A了。至此三道比较水的水题A完了。一看榜,I过的比较多,D过的也比较多,于是wj去看D去了,我和zb就去看I,I是两个全等的圆环的面积交的问题,我心里觉得它能转换成圆圆面积交的一个容斥公式,感觉不需要分类讨论,于是让zb就去比划一下,我就推一下圆圆交的面积公式,我推完了,zb也推完了,比划了一下样例发现刚刚好,我就上去敲I了,然后貌似zb和wj就去讨论D去了,我敲I还是比较顺的,写了一下改了一下过样例,一交就1A了。这个时候比赛过去大概1个半小时,非常顺利的样子。然后我下来的时候wj和zb好像已经get到了D的做法,据说是O(n^2)的,但是题目给的数据量是n=200,于是他们半信半疑的敲了上去,我就在旁边翻翻过的比较多的B和F,后来D wa了,然后zb和wj讨论了一下发现O(n^2)的贪心是有问题的,这里是我们第一次卡住了。后来wj说了一声“是不是区间dp"? 我一听就知道D题能出了,我也不用去想了,因为平时wj只要get到是dp,然后他就在纸上写上个10分钟的dp方程,然后上去敲一下就1A的,那天也是这样的,wj在纸上写了一下上去一敲就A了。然后就是3人齐齐想B,其实我和zb之前想了下F,但是总觉得求三次方的期望是没法做的,一次方的就可以,又想着2队他们70分钟就出了B,应该是能做出来的,于是放了F去想B,期间我们YY出了各种奇怪的填法,不停地提出然后不停地自我否决,因为题目是一脸构造的样子,但是我很怕它是那种像热身赛一样一脸构造的XX题。。想了一个小时好像都没有进展,后来zb提出了一种填法,我和wj都觉得它能填出绝大多数,这个时候距离比赛结束还有1个多小时,想想可能这题可能就是这样YY了,所以zb也就上去敲了,虽然我们心里都觉得有点悬。接下来留给我和wj的选择就只有继续想想B有什么正常的思路或者是想想别的题,后来想想还是再思忖一下F好了,于是我就和wj讲了一下为什么我觉得三次方的期望不可以而一次方的期望可以做的问题,讲着讲着我突然get到了什么,一次方tm可以做三次方好像tm的也可以做呀!!!,那一刻我就像是ACM的logo那样,整个人好像个电灯泡一样亮了,那一瞬间我就知道F可以出,一定可以出,于是我就从zb那里抢过机器,写了一下,发现输出怪怪的,后来查了一下没有memset,一改过样例交上去后A了,这个时候离比赛结束还有40分钟吧。于是zb上去继续敲B,敲完试了几组数据感觉没问题就交上去了,心里想着要是A了就神了!果不其然YY的算法还是会WA的。。于是只能试多几组数据,凑巧试出了一种出不了结果的,zb打了个补丁,可以把这组数据也通过,再交上去还是WA。这个时候我心想可能也是算法的问题,时间剩下那么少,看来也就只能这样了,哪怕get到正解也没有办法了,此时wj说了一句超级有哲理的话,像这种搜索的题能够通过贪心加打补丁的方法过掉,就是在这句话的鼓舞下zb顽强的补了一些补丁上去,但是还是WA了(毕竟5000组样例),就在我心里想着可以吃点东西的时候,zb不知道为什么超神的改了一下,然后交上去了,那个时候我只是在左顾右盼没有看到那个Yes的瞬间,但据wj说,那一瞬间zb整个呆在那里2s,然后看了看他,然后好像大叫了一声。我想那2s zb肯定是触电了(解释了他第二天为什么会变成闪电侠...)。至此291分的时候我们做完了所有的7题,看着7个气球飘在空中(是的,用的是氦气球,有情怀的学校就是高大上),心里想着来之不易。
赛后就开始估算自己有没有金了,最后算了一下其实是只有50/50的,因为最后时刻做出7题的人不少,但后来听说无论怎么样7题都会有金,我们3个人就笑的合不拢腿(嘴)...事实后来是排到14,这是一个真金,不需要特别照顾的金哦!在这个特别值得纪念的比赛里,我就特别的拍了好多好多照片,像在西安就没有拍啦- -0
这次写的总结有点长,毕竟以前打了那么多场比赛,写的总结都是打差了的,这次打好了真的就不能放过了,写长一点。想当初搞ACM的时候就贪着那么好玩两个字,一路下来从不会搜索,到会搜索,从不会背包到会背包,从不会Splay到会Splay,从不懂后缀数组到会套模板。坦白地说我没有100%的在ACM上付出,兼顾了一些学业,就靠着平时零星的时间补一些知识,但那种感觉是最快乐的,去学一些新的知识,看别人的论文,写一下代码,把自己的代码模板化一下,get到一些全新的姿势,这些都是搞ACM以来给我带来无尽的快乐的事情,甚至后悔高中为什么不知道有这么好玩的东西,要是知道肯定会早点接触程序设计这个美妙的地方。有些时候真的是因为太爱了,所以当西安打铁的时候,真的有点接受不了,那天晚上做梦都梦到第二天又打铁,回到来也一直郁闷着。但是后来在和队友慢慢地训练下,慢慢地对我们又有了信心,去北京之前我也已经做了再打铁的打算(人生总有最坏的打算),那个时候心境真的是坦然了许多,没有什么东西是白走一趟的,走过去了西安,收获的是一种抗挫的能力,是一种更坦然面对的态度吧。有些时候人走的太远了会忘记自己的初衷,我走在ACM的路上不只是为了拿奖的,是因为它好玩有趣我才去的选拔赛,我才自学那么多奇奇怪怪的姿势,为的是Accepted的快乐,为的是灵感来临时那般触电的感觉。记得讲题的时候上交的裁判将acm的精神概括成了always challenge miracle, 北京赛那一天我想我们真的做到了,尤其是zb,在最后的时刻都没有心灰意冷,而是顽强的积极的打补丁,最后产生了这个miracle,有些时候有些东西,你要是不坚持,不去尝试,不去挑战,可能就真的和miracle擦肩而过了,真的,不到最后一分钟都不要放弃,我想这是我在这场比赛里的收获吧。
回头看回自己写的总结,队友写的总结,感触真是颇深呀,zb那篇总结下面有这样的一句评论"总之,能记住失败有多不好,就已经是一种好,能知道自己做得还不够,以后就一定会离一百分再近一点。什么都会过去,什么都会降临,该失去的失去,该得到的,也总会得到。"我想我们队看回这段话都会有种想哭的感觉吧,我想是的吧,“该失去的失去,该得到的,也总会得到的“。
always challenge miracle!