2025 CSP-S 游记&赛后总结&反思

· · 生活·游记

2025.11.1

14:30 开考

通读题面,并未想到任何思路,有点着急。努力思考 T1,并得到正解。

15:05

做完 T1。调完之后开 T2,对于前 16\% 的数据和特殊性质 A 显然可以直接 \text{Kruskal} 求得,花半个小时左右调完 48 分代码。之后思考正解,发现贪心,动态规划都不可做,只口胡出了 2^k 暴力 \text{Kruskal} 的办法,认为没有前途,于是决定看 T3。

15:50 左右

发现 T3 特殊性质,暴力分不少,决定冲击 T3。先想了哈希,写挂。再花了很长时间思考其他的想法,均以失败告终。而在重构代码,思考中浪费了很多时间。

17:30 左右

T3 最终打了 10 分暴力和哈希骗分跑路。没时间看 T4 了,回去补 T2 的暴力,最终因若干原因打了若干补丁,最终复杂度约 O(2^k(m\log m)),期望得分 56。

Last 30 min

对代码进行最后的检查,完善(生无可恋),期望得分 100+56+[10,?]+0

2025.11.2

补 T2,发现每次 \text{Kruskal} 可以不重新排序,可以通过若干 Trick 和优化达到 O(m\log m+nk\log (nk)+2^k(nk\alpha (nk))) 求得(好猎奇的复杂度,之前根本不会想到),足以通过本题。

UPD on 2025.11.7

## 本次比赛暴露出的问题 1. 对 T2 的思考体现出自己对算法不熟练,如果深知 $\text{Kruskal}$ 瓶颈在于排序,对排序的过程略加优化,就不会只有 56 分。 2. 考试中时间分配的失误。对于 T3 不熟悉的字符串,不应该去花过多的时间去做无用功的尝试,应该着重观察特殊性质,或是分配给 T2 或 T4 的暴力。 3. 经验不足,考场上对草稿纸的使用率极低,加上没买水降温,以及重复输密码降低了效率,使状态大打折扣。 ## 之后该如何备考 NOIP? 1. 对自己熟悉算法的题目,尽量多加思考,尝试 $70$ 分 ~ 正解,并学习一些优化技巧。对自己不熟悉的题目类型,着重练习部分分和特殊性质,并从中积累,学习。 2. 在模拟赛中不断优化做题顺序,时间分配,达到在 4.5 小时内拿到尽可能多分数的意义。 3. 积累本次考试的经验,并汲取教训,下次做更充足的准备。