ICPC-2022-ECfinal-上海 总结

· · 生活·游记

此生最后一场 ICPC。

打铜了。rank 100+。

这篇总结会从尽量客观的角度来复盘比赛。

赛前:

从我自己的角度,赛前4个星期的时候开始投入大量时间到训练中。

赛前稍微熟悉了一下操作系统,并且学习了一下常用的编译命令和bash脚本。

赛前的训练,我能够感受到我个人的手感提升,以及心态上的调整。

虽然还是会暴露一些愚蠢的bug,但这个过程中都收录并且做了总结。

体现出的问题:

热身赛:

做了2道题,第三道题因为我们思路的遗漏卡了很久,再加上不完善的剪枝,没有当场完成。

测了一下机器环境和现场情况:

现场赛:

赛题总览:

比赛情况:

通过:5/13 CFIJM

排名:111/279

铜牌

比赛回顾:

$\color{black}【00:10】$ nsh开始写M。 $\color{black}【00:16】$ nsh发现没过样例,于是看了一下样例,ljy继续写C $\color{green}【00:19】$ nsh改了两行M,过了。ljy继续写C。 $\color{black}【00:48】$ nsh和ckh讨论之后感觉L的构造比较可做,猜了一个感觉比较靠谱的构造,nsh写L。 $\color{red}【00:57】$ L提交之后WA,ljy继续写C 这里我其实继续想了一会儿 L 的可能错误点,ckh读了 J 题并且得出一个结论,给我讲了一下,但是传达题意有误,我并没有听懂他的结论怎么来的,注意力继续在L上放了一会儿,然后去看F。 $\color{red}【01:02】$ ljy的C提交,WA;ckh写J(树dp的想法) $\color{red}【01:16】$ ljy看代码发现了点C的问题,改了一下,提交后WA,ckh继续写J。 $\color{red}【01:23】$ ckh交了J,WA。ljy改C。 这个时候我再次去问ckh的 J 题的题意,于是乎开始有效沟通,才发现他的结论是错的,我很快纠正了他的结论,并且发现了题目是一个简单的叶子计数。 $\color{black}【01:28】$ ckh上机改J(此时是正解) $\color{green}【01:30】$ ckh提交J,过了。ljy继续改C。 这个地方已经慢了很多了,如果早点看J并好好确认题意的话,30分钟内解决这两个签到才是应该的事情。 $\color{red}【01:33】$ ljy提交C,WA。 $\color{black}【01:41】$ nsh上机写L,因为ckh发现 $n=3,m=3$ 的时候有特例。 $\color{red}【01:48】$ L提交,WA了。ljy继续调C。 这个时候我们发现L题其实过的人很少,于是就决定先放弃L题,跟榜去看 F 题。 F题是一个比较 trick 和需要变通的交互题,我和 ckh 很快想到了4次询问可以比对两个元素。 考虑到 ljy 的 C 暂时没有拍出问题,我决定先上去试试比对+归并排序+记忆化。 $\color{black}【02:03】$ nsh 上机写 F $\color{red}【02:24】$ F 提交,常数不对,RE。 我写 F 的这个期间,ckh 和 ljy 讲了 I 题,有一个非常正确的思路。 之后ckh写I,但是第一份代码他出现了三个问题: * Dijkstra 没加 long long * 没有考虑终点在半径内的情况 * 没有枚举第一步触发传送的所有走法。 > 于是经过3发罚时,修好了前两个锅,最后一个一直修不好了。 > > 比赛结束后想到了hack数据 > > ``` > 5 4 3 10 > 1 2 > 2 3 > 3 4 > 4 5 > ``` > > 如果用ckh的算法,答案是34,而正解是36 $\color{red}【02:54】$ ckh的I提交,WA 。 $\color{red}【02:57】$ ckh 的I改了下 LL 再提交,WA。 $\color{green}【03:03】$ nsh 和 ljy 一起看 C ,发现变量名写错,改后 AC 。 $\color{red}【03:18】$ ckh 的I补了一种情况,但还是 WA 。 $\color{red}【03:55】$ nsh 重构 I,WA。 $\color{green}【04:09】$ ljy 交 F,过了。 $\color{green}【04:22】$ nsh 改 I,过了。几乎同时,ckh 发现了 L 的一个 corner case 之后一直调 L ,最后10分钟 ckh 上来 rush H,但是来不及调代码。 我的L在修补丁的时候也因为忙中生乱,写错了地方没来得及改完。 #### 总结 * 有种打假赛的感觉。 * 对于构造题L和交互题F,过于相信直觉,开的太早了,导致前期卡题太多。倘若早一点和ljy一起看C题,优先把柱子解决掉,可能更有利于L和F题的解决。 * 然后I题也是过于相信直觉,导致代码的实现和实际的做法没有完全契合,出现了”心口不一“的情形。 * 另外,没有落实赛前的策略:让ckh把题目给一个人讲明白再开始写。比如J题ckh最开始的做法是不对的,但我没有听明白,仅仅因为在思考别的题,就让他先上去写了。写完之后WA了讨论了才发现有问题。 * 我觉得ckh的优势在于很多问题能一下子想到靠谱且正确的初步思路,但是这个思路在细节上通常和正解有所出入。以及容易把简单问题看错或者复杂化。 * 赛前一段时间我经常拉着ckh加训,希望能提升他在前期题目上的准确性和稳定性,但是看起来效果并不佳。 * 我觉得很有可能过去的这些加训都是无效的加训,有数量,但没有质量。 * 之后还会有一场CCPC-Final,经历这场大败之后,做出调整是有意义的。 * 不过我要先搞完毕设再做准备。 ---- ### 部分题解: 这部分补题开放之后会慢慢补上。