第十一届中国大学生程序设计竞赛 哈尔滨站(CCPC 2025 Harbin Site)
Review
省流:正式队伍 rk8,校内垫底,8 题队罚时第一
热身赛无罚时打了个 rk2,感觉有点牛。考虑到羊羊羊没写最后一题计算几何,感觉也不那么牛。
经典开题顺序,看了下哪些是 1s。观摩 A 的样例识别出了做法,交了一发爆!经过 \(8+\varepsilon\) 分钟后意识到是 __gcd 结果可能是负数。
然后 APJ 光速过了 L,以为是一血结果不是,然后送来了一血气球???
我和 zzz 跟进了下 G 做法,然后也秒了。zzz 写 G 的时候跟了下榜,确定 I J 之类的可做,J 就是 Manacher 基础上加一些讨论,断断续续在写。
期间 APJ 和 zzz 在交流 I 和 K,I 疑似害怕想简单了,之后听到其他队伍有相同的 I 做法,于是上机过了 I,之后又过了 K。给 J 上了拍,调试了一下 \(10^7\) 极端数据的 RE 之后也过了,此时时间过半。这个时候还是校内第一名,罚时比较小。
后面三人各有一题,我 M,zzz B,APJ H。M 的思路基本确定了,但是需要 NTT 差卷积,趁 B 调试打印的功夫让 APJ 写了个 NTT,然后发现板子库是 joke3579 的……经过大量调试,zzz 最后过了 B,但是我 M 似乎卡住了一种情况,比较着急了!于是两个人分屏调试 H 和 M,最后我确定 M 少了一个限制,于是下机去手模。APJ H 最后几分钟高斯消元一直出错,在最后四分钟找到问题了(板子库里依然没有高斯消元)。所以 M 确实就没调出来,但是赛时过了一车 M,感觉拉完了。很难想象这是 \(2.5\) 小时做的事情。
Solution
A. k-子集和最大公约数问题
目标是让任意一个集合的元素和是某个数的倍数,那么可以直接找一个 \(m\) 使得 \(a_i\bmod m\) 相等,之后就要把余数部分凑成 \(m\) 的倍数,\(k=m\ \gcd(a_i,m)\)。
G. 扫雪
如果这一行后面没有坑,那么提前往右肯定是不优的,所以直接从上到下从右往左扫。
J. 幻想乡的裁判长
字符串题,直接把 \(\texttt{w}\) 拆成 \(\texttt{vv}\),之后跑 Manacher。
注意到可能出现 \(\texttt{wvovv}\),这样拆完之后边界把 \(\texttt{w}\) 劈开的情况,如果另一侧缩减一位不是在 \(\texttt{w}\) 中,直接左右各退一格即可。比较麻烦的就是 \(\texttt{wwovww}\) 这样左右交替卡在中间的情况,这样就需要其中一侧完全跳出 \(\texttt{w}\) 连续段,提前预处理一下即可。

浙公网安备 33010602011771号