2023 赛季 CCPC&ICPC 游记

退役多年的 OI 选手的两场 CCPC 算是结束了,过程不算太顺利,但结果并不算差(主要还是靠两位实力强劲的队友)。出去开开眼界,更明白了自己实力的不足。借此回忆一下这两场 CCPC。
CCPC 秦皇岛热身赛时我们坐的位置恰好是下午三到四点阳光直射的位置,如果没有志愿者提供的雨伞连电脑屏幕都看不太清,不过正式赛时这个位置并不会被太阳照到所以也算不上什么大问题。热身赛的 T3 我想到了一个维护区间最大子段和的奇怪做法,但是 xls 想到了一个实现更为简单的做法,上手写没多久就 A 掉了(热身赛好像捧杯了),热身赛三题都不是我写,几乎没有机时(1)。第二天的热身赛由于枚举子集我的傻逼写法贡献了第一发罚时。发现I题大概率是一道 ds,开始时得到了一个 log 方的做法,估计过不去,在 xls 提出可以对 k 取模后离散化时突然发现这个题好像可以直接在 set 维护线段树,通过线段树的分裂和合并做到严格单 log,又想到自己好像在不久前就写过类似的算法(2),队友也觉得做法非常正确,看时间也算充足就直接上机写了。代码大概二十分钟就写完了,但是样例就过不去,调了一段时间发现了一堆问题,终于过了样例,但是交一发秒 WA。此时已经占了接近一个小时的机时,虽然队友的 C 已经会做了,但也是一道实现很麻烦的题,如果现在换 C 有可能导致最后两题都调不出来,只能继续调 I,好在 xls 给出了一个很简单的数据就卡掉了,于是对着那组数据又调了大半个小时,过了之后又交一发还是秒 WA。这是其实时间已经不足一个小时,只能先打印代码,让 gls 先开写 C。对着纸质的代码看了没几分钟就发现了一个问题,改了还是 WA,又发现了一个非常致命的错误,改了直接就 AC 了。此时距离比赛结束不足半小时,队友的C最终也没能写完。事实上在我写后没多久 xls 也想到了一个做法,或许在实现上难度接近,但我自认为 xls 的代码正确性比我强多了。也许就是因为(1)导致的状态不好,也可能是因为(2)导致的过于相信自己代码的正确性,但最后的问题还是源于心理上的不够成熟以及实力的欠缺。虽然就算没有过I,我们队还是可以凭借前期罚时上的优势得金,就算过 C 也没有捧杯的机会,但没能在比赛时发挥出自己最好的状态还是会感到遗憾。
CCPC 桂林我们因为学校里的比较远,早一天就到了,回南方的感觉真好,但是鼻炎犯了还挺难受的。桂林电子科技大学确实很大(我感觉面积顶的上十个北交),而且绿化也不错,还有专车接送(3)。第二天热身赛,吸取了上一次的教学我一定要争取到一定的机时!C 题判断凸包是否合法紧跟时事,好评。官方说前 50 过题的有奖品,但事实是热身赛的交题开放是在比赛开始后十分钟,我们一度以为 C 是一水,gls 还写了一个一眼假的做法,结果成功和前 50 无缘。看一分钟就有四五十个队过 A,我看了一眼 A,发现好像前 n-1 个前缀和都大于 0 就是合法,三分钟时 xls 才过了 A。gls 知道了 C 的问题,又继续调试 C,结果发现好像只要跑完凸包判断凸包上的点的数量和输入是否相同就 A 了(其实写了判断顺序是否相同,但是忘记输出 No 了,结果交一发就过了),看来此题数据也在致敬西安的凸包题。不难发现 B 和最长上升子序列有关,但好像要在求的过程中计算修改次数的最小值,不太会写就丢给 xls 了。此时只剩下 D 题,但我还没拿到过机时(热身赛 AK 的好像正式赛都拿不到太好的名次),xls 一直在旁边催我和 gls 把 D 过了,好 AK 离场。此时我发现了这个函数嵌套多次后的数中的质因数集合好像会趋于稳定,然后每次嵌套求欧拉函数的过程就变成乘上一个固定的数,然后这个嵌套次数是不超过嵌套欧拉函数把 x 和 k 变成 1 的次数的,也就是说上界是 log 级别,但我写了一个单次求欧拉函数 sqrtxlogx 的做法交一发就过了(怎么又 AK 了,感觉要伏笔了)。AK 后测了一下环境就提前离场和 xls 去吃开封菜了。开封菜在校门外,我和 xls 都是社恐差点出不去校门的门禁。吃完开封菜,本来想走回酒店,但是走了几步发现不知道往哪个方向走,打车还被放鸽子。然后想回学校,结果校门口保安不见了,我们又进不去门禁!在校门口晃悠了一会才等来保安放我们进去。由于(3),我打电话给司机来接我们去另一个校门,结果没接。我们只能平均凡人只里跨越这巨大的校园,xls 通过记忆周围山的形状和月亮的位置,我导航酒店还导航到了另一个同名酒店。虽然是卧龙凤雏,但大致的方向还是正确的,但我们还是在这偌大的校园中彻底迷失了方法,最后还是靠别队的好心人发的定位才成功逃离。
迎来了最为精彩的 CCPC 桂林正式赛,前5题我们还是紧跟大家的节奏,而且都是一发过,罚时上极为优秀。其中我很早就知道B的正确做法,但是 xls 不知道为什么一直觉得我的做法很有问题,不让我上机写,错失了一血的机会。真正精彩的部分从I题开始,在 xls 的提醒下我很快将问题约束到求区间不同数个数,这是一个众所周知的模板题,但是我为了求整个序列的 mex(第一个没有出现的正整数),把原序列排了个序。如果只是排序了,那么应该样例都过不去,但是更为抽象的是我把第二组样例的第一个数字打错了,结果输出和样例标准输出相同,同时 xls 给了一组手捏的样例,我的代码输出 1,xls 略作思考后表示答案显然为 1,于是喜提一发 WA。后来在 gls 对着打印的代码观察后发现了这个问题,改后发现样例和 xls 给的数据都过不去,一度以为是做法问题,又看了几分钟才发现是样例打错了,而且 xls 给出的数据的应该输出 0,这题卡了近半小时还有两发罚时(4)。J 题在我写 I 时候 xls 和 gls 就讨论出做法了,我过 I 后马上就开始写 J,我则开始想 H(5)。J 写得也很快,而且样例也过得很快,交了一发秒 WA。打印了两份代码,我大致看看没有明显的问题,双模 hash 的两个模数也没有写错。很快 gls 就发现他写的欧拉回路上有一个明显的问题,但是改后还是 WA。写了数据生成的代码调 J,还是没发现问题,此时J以及卡住一个小时,比赛也进入最后一个小时的封榜时间,如果不过 J 我们大概率就要和金失之交臂了(6),我们想让 xls 先去想 H(开始以为很不可做,但此时已经有不少队通过了),但 xls 还是坚持调 J,最后 gls 惊喜地发现在离散化 hash 值的时候 xls 把一个 a 写成了 b,但是随机的数据下可能不太容易出错。交了一发,跑的时间明显更久了,但是 RE 了。在改改数组大小后终于在比赛结束前大约半小时通过了J,但J通过太慢,而且有 6 发罚时使得我们的金并没有很稳。xls 好像突然知道了 H 的做法(7),开始速写 H,交一发没通过后我感觉大概率是贪心存在错误的概率,于是在代码中加上换根多跑几次(8),但还是一直 WA。在最后三分钟时 xls 突然想到初始化错误了,改后交了一发 T 了,说明跑的点更多了,但是因为(8),xls 代码会跑得很慢,此时距离比赛结束不到一分钟,gls 急忙改小随机换根的次数多交了几发,但最后一发只跑一次的代码大约是因为交代码的延迟导致没交上去。赛后了解到xls最后的做法是正确的,所以如果最后一发交上去了可能就过了。我们虽然前 6 题罚时比较优秀,但是 J 题的失误我们此时的罚时大约是 7 题的中间,不清楚到底有没有金。在焦虑和反思中等来了滚榜,相比秦皇岛的人工滚榜,桂林的滚榜明显快很多大概十分钟就滚完了,我们还是凭借前期的优势得到金牌。因为不知道什么原因只要捧杯的和金牌上台领奖,也是难得上台领一次奖。(本来想让 xls 上台的,但是 xls 此时的衣服太脏了)回酒店后 xls 说他其实并不是(7),而是在写J前就大致知道H的做法,而我在 gls 和 xls 写 J 时一直在错误的方向上想 H。没能过 H 确实挺遗憾的,正如秦皇岛的 C 一样,这道 H 对我们的排名来说作用并不明显,但仍是实力不足的表现。
CCPC 已去,ICPC 未来,希望能在 ICPC 赛场上表现得更好。
加训!(后面两周要考试,不愧是北京周考大学)

经过两个星期的期中考试(不愧是北下关周考大学),终于迎来了 ICPC 沈阳站。过去的路上看见了南方没见过的雪景,也感受到了南方十年难得一见的寒冷。可能是因为早起,gls(数据删除)和 xls(算是完全没睡)在高铁上一直在睡觉,感觉状态也不是很好。热身赛打得迷迷糊糊,算是勉强在最后 5 分钟 AK 了。发现了隔壁就是在北大的高中同学。晚上和几位 sxyz 的老同学一起吃了个饭,回忆起在 sxyz 待的一年半的时间,过去已久又倍感亲切。
第二天,在寒风中走进了东北大学的体育馆,开始了我的第一场 ICPC 区域赛。开局先看 A,感觉是网络流,但是数据范围不太行,应该不是一道前期。发现 C 是一血后开始看 C,看了一会不太看得懂,大概花了十分钟终于勉强看懂,还抽象地在一水 WA 了一发,得到了总计 41 分钟的罚时,喜提 200+ 的排名。xls 不知道为什么开局开了一个并不简单的题,在五十多分钟的时候才过,gls 快速地切掉了 J 并且把原来直接循环转移 dp 值的 E 换成了在 BFS 的过程中转移,也成功通过,我们也是在这时才算勉强跟上榜,而且罚时升天。xls 发现了 K 可以直接线段树上二分解决,我开始着手写 K,开始时忘记判断叶节点可以取若干个而 WA 了一发,不过好在有惊无险地过了。此时 gls 已经会了 D 题,不过既卡时间又卡空间,在过了样例后还 RE(其实是 MLE)和 TLE 了几发,不知道做法是否能过后只能让 xls 先去写 B,因为 gls O(n^2) 求组合数的部分给 xls 写错了,导致 B 也调了挺久,不过好消息是 gls 知道了 D 的卡常方法,过了 D。此时 7 题的我们感觉金牌是稳了,打算来开 H 和 I 两道不一定可做的题。xls 大胆猜测 H 有且仅有环和链是收敛的(四个点的菊花图在操作后会变成环),不过他难得在没有证明做法的情况下开始写题,在经过不久的调试和一发 WA 后居然过了此题。在 xls 写 H 的时候我已经把 I 的情况规约到 4 种,其中只有一种情况的方案数计算比较麻烦。快速写完其他三种,让 xls 来完成最后这个相对麻烦的情况,竟然直接就过了样例,交一发,WA。此时还剩 20 分钟,很快我就发现了一个严重的错误,并且成功 hack 了我原来的代码,可惜交了还是 WA。gls 不知道为什么突然感觉有一个地方有一点问题,把对输入转置的判定条件一改就过了!距离比赛结束还是 10 分钟,剩下的题感觉也没有队开出来,彻底下班。
赛后了解到我北大同学的队也开了 9 题,杭电的队开了 8 题,感觉捧杯有希望。
在漫长地讲题和滚榜后终于揭晓。
北大独占前三,不过因为一个学校只能拿一个杯的限制而只有一个队以 6 分钟罚时的优势荣获冠军。我们作为除北大外唯一的 9 题队成功夺得亚军,上海交通大学以罚时的优势荣获季军。
全靠黄老师和许老师的指导,再接再厉!

ICPC 杭州抽象游记:

再入杭师大,时隔一年再次来到这个似乎熟悉的地方,回忆起最后一场 CSP-S 和 NOIP,当年的同学已经去到了全国各地,OI 的经历已成回忆,并不成功,亦无力改变。

赛前叠 Buff:

Buff1:队长苏子佩睡过头,没赶上火车

Buff2:热身赛没有 AK,而且没有测环境

Buff3:热身赛前一天 StarSilk 未睡觉

Buff4:买了巨多果冻

Buff5:正赛凌晨有 CF,但是 StarSilk 不能打,emo 了

好,真季了。

此地,既是终点,亦是新的开始。

posted @ 2024-09-25 17:05  SxyLimit  阅读(46)  评论(0编辑  收藏  举报