2014 ACM-ICPC 上海站总结

        2014,上海,这大概是我打的最后一场regional。说实话,打得不像上一场西安站那么有感觉,下面来说说我的比赛经历。

        周五,老师开车搭我和殷华去火车站,路上给我们买了水杯和一些吃的,好贴心的感觉可怜。然后我们上了火车前往上海。十点车厢熄灯以后,我很快就睡着了,没想到夜里一点醒来却睡不着了,跑去车厢连接处看了一会书。。到上海之后,乘地铁去上大报道,有位志愿者领着,过程比较顺利,盈神随后也到了。下午热身赛,题目是1人品题+3不会做的题,听说是拼模板的,慢悠悠地交了N发人品题终于过了。晚上也是很早就入睡了,和我参加各种比赛时一样。

        周日早上,准备了几支笔和巧克力来到赛场。南方的比赛确实有点冻手,体育馆里没暖气什么的。。比赛开始,盈神去敲配置,我正序读,殷华逆序读。我读到B,隐约感觉是水题,就往纸上画样例。然后殷华给我说了L的题意,大概是一个有向图,问最少加几条边,可以使得图中有一条路径连接所有的点(怎么听得那么像鄙视链尴尬),我听了之后没想法。然后盈神上去敲,用并查集搞,后来好像发现不是正解就放弃了。然后我和盈神讲了下B的题意,一个网格内,所有格子的中心站着个人,一辆车从左上角沿某路径开,最终回到左上角,所有人始终保持面朝车子,求他们转的圈数的平方和。我给盈神说了个思路,就是统计车子在每个人上方和下方往左右方向开了多少次,大概是个二维线段树或树状数组,盈神也觉得是那样做,我就上手去敲树状数组。二维的线段树/树状数组我只敲过一次,也没带板子,相当不熟练,很快就卡住了,并且感觉会爆内存,就换盈神去敲她的线段树板子。期间我和殷华讨论了一下J,感觉是个很神奇的题目,N支球队和其他队伍各比赛一次,胜负和都能得到相应的积分,取前M名晋级,问最高可能的淘汰队伍积分和最低可能的晋级队伍积分。因为数据量太大,感觉是需要推一个什么公式算出来。

        盈神敲完了B,但是没有过样例,打了份代码让我帮她查,我发现我看不懂她的板子委屈,我只会树套树的那种写法,只能对着查,然后改了一下能过样例了,交第一发。。RE。改了下数组大小,还是RE。很快就发现,数据大的时候会爆内存。这个时候时间过了有一个小时了,过题的队伍寥寥无几,谷歌爷果然是凶。突然榜上出现一些队伍过了I,好像当时盈神在敲,殷华在想J,我就去读I(这是我这场比赛唯一的贡献,读了I的题意。。。其他时间好像都是在坑哭)。大概是给出己方n个兵的攻防,对方m个兵的攻防,每个兵只能用一次,打的时候,只要攻击大于对手防御就能打死。需要在全歼对方的前提下,尽量多的保留自己的兵。然后很快得出了个图论的解法:最小费用最大流/二分图最大带权匹配,不过感觉时间和空间都不允许,甚至图都建不起来。我给盈神说了图论想法,然后建议往贪心上想。盈神觉得可以敲最小费用最大流试试,就上去敲了。

        这个时候,我和殷华交替考虑J和I,然后cha掉了几个I不正确的贪心方法。突然,我想到B用线段树怎么缩内存了(其实应该仔细想想然后用树状数组的,效率高不说,代码复杂度也能大大降低),并不用开1E6*1E6,虽然不熟练,但是可以硬着头皮去试试。盈神完成了I(建图的方法),果断TLE了。然后就是我上去敲B。。

        这个时候已经快要封榜了,想着来上海不会爆零了回去吧。。我正专心敲着B,盈神好像是吃着东西想出了I的贪心方法可怜。之后的时间,就是我们三个人交替上去分别敲三道题,盈神敲I,我用巨挫的方法敲B,殷华用yy的公式敲J,谁敲完了或者卡住了就换下一个人,好像在运行一个优先队列。在离封榜几分钟的时候,盈神通过了I,桌子上终于飘起一个气球。我回去继续敲B,完成之后,开始了漫长的debug。。估计发现的bug不少于15个,什么语句顺序错,ud变量名写反,左右移运算符写错,漏考虑特殊情况等等各种。。。在最后的二十分钟左右才通过了样例。交上去以后返回了TLE。在最后的乱搞时间里,殷华还把代码转成了C语言,送出几发提交,全部TLE。。

        最后结果是这样的,我们很幸运以1题捡了个铜(在此无比膜拜总结中能出现A~L中大多数字母的人),卢学长也出现在了赛场微笑但是大家都没有激动的感觉,甚至我连奖牌都没去碰。题目难归难,区分度还是很好的(铜第一名2题,银最后一名3题)。感觉自己太弱了。

        不想说再见,这八个月里,自己的进步还是能看到的。希望以后能够克服自己不足的地方,比如比赛时候比较心急,代码能力不够强,敲某些算法总想着有个板子,还有盈神跟我说的应该多读别人的代码害羞。最后我想说的是感谢实验室给我带来了那么多,如果去年校赛的时候不过来刷刷算法,现在估计好多东西都不会,这段日子应该是我进步最大的时间,唯一的遗憾,就是没有两位稳定的队友,和我一起奋斗。还是很享受这个过程,享受AC的感觉,我不会停止刷题,就像AcdreamOJ一场比赛的名字一样,NEVER RETIRE。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值