CSP-S 2025 游记
人生最后一场 CSP 啦!希望不要是人生倒数第二场 OI 比赛。
考试前一天打颓到半夜是传统了。下午
我发现每次中午考试前的午睡我都会有一种“所以我刚才到底睡没睡着?”的感觉,这一次也不例外,感觉眨了下眼睛,一个恍惚,几十分钟就过去了。
但是这一次有我的老父亲明确告诉我,我刚才是睡着了的。所以我终于确定前几年考试我也是睡着了的,也不用像之前一样从进考场学校到开始比赛都一直思考这种奇怪的问题了。
扯远了。
进考场都快开考了才想起来已经有代码收集系统网页了,找了好一会才发现网址写在考场黑板上(wssb),手忙脚乱打开网页的时候已经开考了,赶紧下载和解密题目。
T1 看起来像贪心,直接想正解。
若没有
该不会是 DP 吧?接着想了五分钟还是觉得应该就是贪心,这个时候才想起来还有特殊性质可以用。
特殊性质 A 是简单的,直接排序后取前
特殊性质 B 是套路的,因为必然有一半组取了第
什么时候让选了
也就是当
所以按照
特殊性质 C 不是简单的,我一开始项想的是先按照 B 的方法将两个位置合并成一个选择,然后再跟最后的围桌合并得到每组的最终选择,但是想了想发现不太对劲(会漏情况,而且此时两个组之间竞争关系没有那么强)。
然后找性质,发现按照一开始想的“无限制时每组直接取最大值”的方法,将所有组按照最大值所在的位置分类以后,最多只有一类的大小
对于冲突的这一类,一定是有
大样例全过了,就是不知道会不会挂。
谁 TM 给 T1 降的黄?
T1 用时
一眼 MST,
直接暴力的时间复杂度是
再用一个预排序的方法(提前将边排好序,
然后我想把一堆必定会形成的子树提前建出来,这就需要一种局部 MST 算法,好像是 Boruvka 状物?完蛋,不会写。
那么换一种思路,考虑哪些边一定不会被加入?感觉上似乎是“即使所有新边都不加入,也依然不在 MST 中的边”,证明了一下发现应该是对的。
按长度排序后跑 Kruskal,那么对于任意一条边:其前面所有边的端点一定会被合成一个整块,加入新边后合成的整块不可能变小。
所以这条边在没有新边的时候就已经加不进去了(两端就在一个块内),加入新边以后块内点集是原点集的超集,这条边就更不可能被加入了。
推广一下,这个方法也能判断哪些新边是一定不会被加入的。
因为 MST 的边数为
考后听说最后的样例不是极限数据,过了以后仍然有 TLE 的可能性,是真的吗?今年评测器是神机,根本不慌。
感觉 T1 比 T2 难为什么 T2 反而是蓝?
T2 用时
《求方案数怎么不取模?》
《这个特殊性质怎么这么怪?》
《这个部分分代码怎么这么难写?》
《这个样例怎么过不了?》
《啊?一个
《怎么这样还过不了样例?这样例有问题吧?》
《艹,不是求方案数。》
《距离考试结束还有
不幸中的万幸是我在写之前就觉得这题代码很难写,所以先去把 T4 暴力打了……也只打了个暴力……
《
最后还是只打了个
:::info[T3 不保证
原估分
CCF 甚至连
:::
:::info[CCF 变性]
听说今年 CCF 突然变性子了,评测器用了神卡 Intel Core Ultra 9 285K(还有
:::