csp2025游记
2025/10/31
打模拟赛。赛后给明天每一题规划了时间:J组 T1 10min、T2 20min、T3 30min,S 组 T1 1h、T2 1.5h 剩下时间解决后面的题和检查前面的题。
2025/11/1
08:30~12:00
先开 T1,是很简单的贪心,按照计划 8min 左右写完。T2 找规律和模拟都行,我写了模拟。因为输入写错了,大约 22min 写完,有点超时了。
T3 看到选择不覆盖的线段就想到了优先选择右端点靠左的线段,于是枚举右端点,用前缀异或和判断到上一个右端点之间有没有合法的左端点。大约 25min 写完。
T4 看到后联想到之前看到过的题:求 的选择方案数可以用
减去
的选择方案数。原本的思路是枚举最大值,分别从左右开始 dp,用合并跳过最大值所在的位置。仔细想想,发现可以将边长排序,这样就不需要从右往左 dp 了。耗时 1h16min 做完。
J 组唯一的失误就是 T2 输入错了浪费了几分钟。以后可以写完输入先测测输入。
12:00~14:30
发现大多数人都能 AK,感觉 J 组题目不难。
14:30~16:30
先开 T1,是反悔贪心,耗时不到 1h 写完。接着看了 T2~4,T2 很快想到思路:枚举城市化哪些村庄,然后跑最小生成树。用了 Prim 实现,但时间复杂度算错了。一般 与
同阶,我就把复杂度当作
,但这道题
与
差了
倍。直到我写完代码发现第三个大样例要跑 2s 才反应过来 Prim 的时间复杂度是
。然后换了一个思路,提前把边排好序,用 Kruskal 算法求最小生成树。很多人都被卡常了,还好我没有。耗时 1h35min 左右写完。
T3 很快就想到了 AC 自动机+hash,但我不会打 AC 自动机,想了 30min 后还是只能写暴力。T4 没时间了,只写了 的暴力。
总结
检查输入,多算几遍时间复杂度,没把握的题先打暴力再想可能会更好。

浙公网安备 33010602011771号