CCPC2025 重庆站游记

· · 生活·游记

前一天刚打完 NOIP2025,红温了。
作为打星队伍参赛,队友是 @Xseventh 和 @zhuzc。

前言

早上到赛场看到了已经毕业的学长,%%%
nodgd 和 whjhr 同时作为教练和选手参赛,这合理吗?

比赛座位在 A 区。在开赛前观望了一圈,比较印象深刻的是女装大佬。
掏出了比赛前一天打印好的 27 页代码模板,然而并没有用到。

正式比赛

这次是第一场 CCPC,不太有经验。比赛开始的时候,看到其他队伍的电脑都自动开启了,但是我们队伍的电脑在开机后 5s 不到黑屏了,尝试修电脑无果,叫工作人员来看。发现是接头有点松,不知道怎么弄一下电脑又能用了。

zhuzc 先写了 A,期间我和 Xseventh 在旁边胡出了 H 和 M。觉得 M 可能比较码农,于是先让 Xseventh 写 H。我在往前看题的时候突然发现 K 是前段时间 Acoipp 刚出过的类似题目,并且比较好写,于是在 H 过掉之后我开始写 K,并在较快时间内成功通过。接下来 zhuzc 表示 B 是矩阵快速幂板子,接手电脑,我在旁边胡出了 J 的动态开点线段树解法,发现和 M 一样都不好写。看了下周围的气球,觉得 E 可能比较简单,遂去看 E,事实也确实如此。鉴于此时手上已经堆了 E,J,M 三题,担心继续看新题会叠加遗忘 buff,于是开始罚坐,和 Xseventh 讨论他手里的题。结论是 G 题可能需要打表,D 可以大力分块 NTT 做到 O(n\sqrt{n\log n})。问题在于 zhuzc 的矩阵快速幂写挂了,后面发现把 a*=ans 写成了 ans*=a,但是当时并没有发现。为了不耽误整体的代码进度,把 zhuzc 的代码放在了电脑的一半,我则使用另一半开始写 E。我当时以为 E 可以简单的使用对顶堆维护,写一半 zhuzc 表示找到错了。趁我被顶下去的几分钟时间发现对顶堆的复杂度好像全错,于是重构为线段树上二分顺利通过。

这个时候大概过了 2\rm h,Xseventh 先过来打 G 题的表,然后放在边上我开始写 M。比较折磨心态的是,写一半在代码未保存的时候,电脑再次黑屏!继续找技术人员,最后决定换到备用机。运气比较好的是,VScode 发力了,未保存的代码在电脑重新开机之后仍然活着不需要重新写。稍加调试,交上去 TLE 了,因为代码常数是在太大,一直以为被卡常了。事实并非如此,后面突然发现我的线段树写的是区间查询,每次递归到叶子返回,鉴定为糖丸了。继续写 J,在没写完的时候封榜了。写完发现空间根本开不下,估算需要开 100N 的样子,事实上连 20N 都开不下。当然可以离散化做到线性空间,但是由于这道题的离散化过于毒瘤,并不想删去当时代码里的动态开点,于是决定先强行交一发 10N 试试水。当时我给 Xseventh 说这要是过了就逆天了,结果是确实一遍通过了。(赛后好像出题人表示这东西就是线性的)

剩下了 50\min,Xseventh 的 G 与 zhuzc 的 F 由于都认为自己能够写出来,于是决定双开。两个人轮番调试,结局是两个人都没写出来,最终 7 道题遗憾离场。

总榜 rk21,也是上金牌线了。

拜谢 @Austin__Griffin@teylnol_evteyl@Acoipp 爆砍总榜 rk3