CSP-S 2025 游记

· · 生活·游记

初赛

感觉今年的题很好啊,没有神秘文常、历史题。虽然出了若干个锅,但是完全不影响答题。

## 复赛 进入考场后,系统一直没好,直到比赛开始系统都没好,所以比赛延时了 15min。 比赛开始后,电脑仍然没有断网。有个小孩大喊了一句“还能上Deepseek!”。然后主办方立马把网断了。 先看 T1。看到“一半”,立马就能想到,至多有一个选项不满足条件。进而想到,把不满足条件的选项进行调整,一定满足条件。然后就做完了。 再看 T2。$2^k$ 枚举后,就变成了最小生成树。看到 $n$ 较小,$m$ 较大,可以想到,只保留原图的最小生成树。 跑最小生成树时,写一个形如 $11$ 个指针一起扫的东西,每次取最小的边权,可以做到 $O(2^knk\alpha(n))$。 随了一个极限数据,跑了 1.5s。然后加了两条优化: - 发现已经连成一棵树时,立即 break。 - 发现当前的边权和已经超过以前的答案,立即 break。 极限数据跑了 0.5s。 切掉前两题总共用了 40min。然后看 T3。 发现对于一组 $(s_1,s_2)$,可以对它们的 LCP、LCS、以及两个串的剩下部分分别考虑。题意可以转化为: - 先给定若干组字符串 $(a,b,c,d)$。 - 每次询问 $(a',b',c',d')$,求有多少组给定的字符串 $(a,b,c,d)$,满足: - $a=a'

考虑全部离线下来,对每个 (a,b,c,d),求出它对哪些 (a',b',c',d') 有贡献。

我先猜想了一个结论:

过了小样例,但是没过大样例。发现结论假了,有点恼火。

但是立马发现一个新结论:

这个结论就很正确了。记录每个 (a,b,c,d) 的区间和 d 的哈希值,扫描线一下就做完了。

此时距离考试结束只剩 50min,决定去打 T4 的暴力。

先打了状压的 20 分。然后思考特殊性质 A,发现不好做。然后思考 m=1,发现很简单。获得了 32 分。

预估分数 100+100+100+32=332

赛后

看了各种群,发现 T3 不保证 |t_1|\neq |t_2|(???)。

然后有人说 T4 很简单,有点慌。

11 月 5 日

通过网站的 bug 查到了分数。一分都没挂,100+100+100+32=332

感谢 CCF 不卡 T3 的 |t_1|\neq |t_2|。orz orz orz。