ICPC2023 南京站 总结
赛前
自秦皇岛被
作为队伍里的多项式/字符串分工选手,我去补了下板子然后验过了第一周校赛的某道伯努利数+分治FFT题,然后又在第三周的21ic澳门vp中补了一下MTT和广义SAM……科技树还是要点的虽然很多时候用不到但万一用到了呢。
一个很逆天的事情是在上海虹桥站过安检之后检票之前突然发现证件丢了,幸好最后还是设法使得上车和住酒店都没出问题(虽然回来的时候出了大问题但没影响比赛所以还好
热身赛
一上来就感觉到了 NUAA 的办赛诚意之足,场地比秦皇岛高到不知道哪里去了,而且袋鼠可爱捏!
测试的东西和上次热身赛差不多,交了十几发测完该测的之后就开始想 A(四个袋鼠题只做过 D),但各种构造似乎都很有问题于是最后还是干脆交个随机然后走人。
正式赛
过题数:6
名次:65
补题数:(待写)
复盘:
- 一上来还是按照事先说好的我从 A 开始看题。一连看完了 A B C D 都没找到签,这会 lhc 发现 I 是签于是直接开写。同时 lym 看完 G 直接和我讲了个做法但手玩没过样例,稍加修改之后能过样例,同时我也证明了这个做法的正确性。
- lhc 那边 WA 了一发,我看了下之后找到某个题意理解错的 bug 改过了,22min 2A,lym 上去写 G,我看榜发现 C 可做于是和 lhc 一起搞 C。
- lym 写完 G 本地一直 RE,我发现有个
.end()写成.begin()了,改了改之后 41min 1A,于是让他去看别的题。 - 我和 lhc 的 C 不太顺利,看榜发现 F 被开出来,lym 看了会 F 好像会了于是和 lhc 交流做法然后上去写,69min 1A。
- 在此期间我也突然懂了 C 的放缩性质然后立刻明白怎么写并和 lhc 确认了。但交上去 WA 了一发。看代码发现算上下界的取整细节写错了,改了之后 88min 2A。
- 接下来跟榜看 ALM。但从这里开始我们就比较卡,A lym 想了个似乎
O(30n^2m^2) 的做法但我和 lhc 没有完全理解就让他写了,L 和 M 我们都看了一眼试图先搞 M,但维护 f,g 的时候在线段树上很难维护答案,转而想分块也并没有进展,于是我转向 L,细想了一会发现直接贪心是对的,但实现有诸多细节。 - lym 花了比较久的时间写 A,在 149min 的时候 WA 了一发。于是我和 lym 看代码让 lhc 写 L。lym 和我讲做法细节的时候我发现这个做法显然有地方假了,并且不太可能改对,只能重想正解。同时 lhc 那边调 L 也很不顺利。
- 我想了会 A 发现了一个连通块里的袋鼠结局相同的性质,并向 lym 求证。然后 lym 证明了这个性质正确,并进而导出了
O(n^2m^2) 的做法,此时 lhc 的 L 也很卡于是让 lym 抢了键盘,我看着他写 A,调了一会 223min 2A。 - 距离结束还有 1 小时多,我感觉必须再过一题否则不好守银,于是和 lhc 看 L 的代码,发现他维护的东西很奇怪。此时 lym 又好像想到了 M 的分块做法,但我还是没有完全听懂,就先让他上去写了。我和 lhc 讲了我的维护方法然后在打印的代码上修改了一些东西。
- 但此时已经感觉时间不太够,于是还是决定 all in L 于是把 lym 又赶了下来。重构了 L 的代码后还是一直过不了样例 1,发现没实现把大量相同包裹一次性放多个电梯的逻辑,此时还有 20min 可以调。
- lhc 指出在电梯空的时候才考虑这一点就可以了,于是我们急速改代码加了这个逻辑,过样例 1 之后又没过样例 2,此时还有 5min。疯狂加调试语句之后发现没处理最后一个电梯不满的情况,再加之后终于过了样例。在距离比赛结束还有 44 秒的时候终于交了并且直接一发 AC。
后记/反思:
- 如果 L 没过就是铜 1 了,最抽象的一集。
- lym 被赶下机之后发现他的 M 也假了,QAQ 但其实这次我只写了一个题,其他时间都在和队友调代码,队友 nb!
- 这次最大的问题还是 A 和 L 是没完全想好上去写了,其中 A 是假的做法而 L 是写法逆天而不太可能调得出来。下周深圳的中期题应该必须保证至少有 2 人理解了完整的做法以及正确性。