第40届ICPC EC-final 总结

        今年有幸又去水了一场比赛,excited!又是上海大学,又是Google命题,真令人怀念。人生中第五次抵沪,倍感亲切。


        这次比赛,一方面是情怀,一方面是锻炼学弟。和两位队友是第一次组队,很容易打成三人分别单挑的情况。。


        热身赛主要给队友讲了下打比赛什么时候该做什么和一些代码风格,实现技巧的问题。题目只有3道题,A是无脑暴力,就让旭东去敲了,旭东貌似状态不怎么好,调了挺长时间,然后我上去过掉了。B明显是字典树,外加简单的位运算,也是先让旭东敲,最后我上去补刀,不过没有补出来。C题目测是找循环节+贪心?


        接下来是正赛。开始以后我先读了A,不久榜上就有人过A了,然后稍微推了一下,发现是推公式+二分搜索,就上去码。结果二分搜索写了bug卡了一下,还好庆发现了,交上去1Y。过A后旭东说M能做,于是旭东上去敲M,我读L,分析一下得知L要分类讨论一下,如果有两个以上数字,就随便拿两个来解方程(当时我还天真地认为方程最多有1个解,结果被打脸了),验其他的数;如果只有一个数字,去分解因数看看所处的行列是否满足要求;如果全是问号,输出Yes。。此时旭东的M贡献了两发wa,我决定接手M,同时我觉得像L这种数学题,旭东应该更有优势,就把我的分析告诉他让他继续思考。我重新实现M,写着写着意识到写了一种比较挫的实现,不好调,就让旭东重新debug他的M,然后他立即发现了bug,交上去过掉了。过了M,旭东直接上L,我开D,庆给我讲了D题的一个错误理解(只能使用一次自动售货机),并且给了一组在错误理解情况下的错误数据。。。然后我开始思考hard version的D。。庆建议说数据组合数不多,可以打表什么的,我就和他用大脑思考各种数据的解。。我们思考和纠结了一段时间,决定不用打表的方法。一是因为这种方法不能保证想出的解都正确,容易wa全场;二是我想到了一种dp解法。于是换我上去码D,接下来的时间,交替进行着我码D,旭东码L。由于我自己思路不怎么清晰,换了好多次才基本调出,期间我贡献了几发wa,旭东贡献了几发re。。。


        一直到了封榜后,我确信自己D题解法绝对的正确性(在错误理解的情况下),然而裁判无情地返回了wa,我无奈重新读题,猛然发现了之前的理解竟然是有问题的(可以多次使用自动售货机),题目突然变得无比简单,终于过掉了D,这大概也是我第一次在现场赛封榜后过题。剩下的时间不多了,L始终出不来,旭东感到无力,而我又看不懂他的代码。这个时候我还读了B,觉得是一道十分无脑的题,只不过要注意一些细节才能写对,我们做了一下决策,还是继续搞L,毕竟没时间敲新题了。也不知道L题在算法上还有没有bug,在最后时刻,竟然连读数据都不能读对。


        这场比赛显然没有打出期望水平,对我们来说,ABDLM五题都是水题。作为dps,我和旭东都出现了代码实现弱的问题,我甚至一度思路混乱。。庆的锅是给出了错误的题意,这种问题谁都犯过,希望他不要因此感到太沮丧吧。。我们队伍策略上的问题是没有专门做造数据的工作,有点疏忽了,不然结果应该会好看些。


        另外这次比赛我又遇到了酱油的几个同学,他们有拿中学名义打星参赛的,有研一最后为学校再战一场的,还有无限执着和疯狂的岛娘。算法确实很有意思,值得对它投入一生的爱。


        回到食堂我们继续理论AC后面的题目,有人一起讨论问题总是那么愉快。最后感谢一下队友,陪我自费比赛,非常令人感动。



你可能感兴趣的:(心得)