CSP-S 2025 游记
上午
把大纲提高组的知识点的板子都看了一遍,然后摆摆摆。
中午去考点的学校吃了午饭,非常好吃。然后在考点学校内随机游走,在荷花池看见了三只乌龟排队晒太阳,最大的一只在前面,中等的一只在中间,还有一只小的在后面,好可爱。
找了把椅子进行了一个觉的睡,感觉良好。
下午
开考。欸我怎么找不到解压按钮,被硬控 \(5\) 分钟。
看 T1,好像先贪心全部选最大的然后用优先队列调整做反悔就行了,写一发过了。此时 \(14:54\)。
看 T2,没思路,怎么感觉是神秘的分析连通块情况,跳。看 T3,是可爱的串串题!
由省选的经验,这时不要觉得自己稳了,万一 T2 调不出来不就爆炸了?先去厕所冷静一下。回来发现 T2 \(k\le10\),又注意到有一个 \(k\le5\) 的部分分,这不是把折半搜索四个字糊我脸上了吗?先想简单搜索,枚举每个新点选不选,暴力加边跑 MST,\(O(2^k(m+nk)\log (m+nk))\)。
考虑折半,这玩意是可以拼接的?发现前面一半和后面一半会互相影响,而这个影响会作用到每条边上,很难定量分析。\(20\min\) 没有结果。
重新审视眼前的问题,我发现了一个忽略掉的点:原图中只有原 MST 中的边有用,这样就来到了 \(O(2^knk\log nk)\),发现归并可以做到 \(O(2^knk^2)\),想了一会发现用优先队列维护最优决策可以做到 \(O(2^knk\log k)\)。尝试通过递推把 \(k\) 去掉,发现空间爆了。于是写了 \(O(2^knk\log k)\),大样例 \(0.72\) 秒。此时 \(16:24\)。
看 T3。观察了一下发现可以去掉 LCP,然后 AC 自动机套哈希可以做到失配树上链查询颜色。把查询离线下来直接 DFS 就做完了!
可是我赛前没复习 AC 自动机欸,万一打不出来怎么办?冥冥之中,一个令我魂牵梦萦的声音问向我。
你真的热爱字符串吗?
我无法拒绝。
种种线索协助着你从一个具体的时刻出发沿时间的河逆流而上,你感到充满了决心。
我提起全身真气,逆转阴阳,化水为冰,重新发明了一遍 AC 自动机。选用 \(\text{bas}=3319,\text{mod}=13145203319\) 以纪念一段美好的时光,之后没有遇到阻碍,一气呵成,几乎没有经过调试就通过了大样例。此时 \(17:32\)。
但是我发现我的代码在主函数啥都没写的情况下都跑了 \(0.5\) 秒,于是大样例喜提 \(1.1\) 秒,肉眼观察还没卡满。一时间没想到什么很好的卡常,赶快去写 T4 的暴力了。
看 T4,数数,先把状压 DP 的暴力写了。哇塞有好多好多性质分可以写,反复横跳想一下,一个都不会,爆炸。此时 \(18:13\)。
w9095 已停止抵抗!
检查文件与弱智错误,发现 T3 好像没保证 \(|t_{i,1}|=|t_{i,2}|\)?阅读了四遍题面,好像真没有。赶快改。此时 \(18:25\)。
最后看了一眼 T3 大样例,全是 \(|t_{i,1}|=|t_{i,2}|\),阴险狡诈!
\([100,100]+[80,100]+[60,100]+[20,20]=[260,320]\),感觉到不了大众分啊,去不了 WC 了,悲伤。
总结
赛前真的没有考虑过 CCF 会出卡常题,于是没有复习任何卡常技巧。例如 T3,有一个显然的卡常是把哈希值离散化一下就不需要 unordered_map 了,可是我居然没有本能反应。这说明卡常还不够熟练,菜就多练。
还有出考场后发现一车人会做 T4,我个唐氏啥都不会。要加训 DP 和数数,菜就多练。
UPD:\(100+100+100+24=324\),感谢 CCF 的不杀之恩!

浙公网安备 33010602011771号