[10.17]CSP模拟赛
本场比赛中小 L 的 std 挂了样例,所以他需要唱歌~
俗话说暴力要打满,但是暴力把数据范围打多了就一点不好了。
赛前
发现可以提前看题,但是昏昏欲睡的我决定先去睡觉。
赛时
睡醒了,开题。
看到 T1,一眼发现一种病毒要不把它所在的矩形全部删除,要不就不用管,所以很自然地想到预处理出每种颜色所在矩形的边界点。
处理完以后由于颜色种类数 \(c\) 很小,而且答案的边界一定是某两种颜色的边界,所以不难想到 \(c^2\) 枚举任意一对病毒,让它们的纵坐标值作为边界,考虑这一段矩形的贡献。
首先可以暴力枚举所有满足条件的区域,对它们全都遍历一遍颜色,统计答案,复杂度 \(c^3\times n\),显然不可做。
把这档的分打好,然后考虑把颜色分别按照左右端点排序,这样保证了选择的单调性,于是乎我们可以用双指针来搞这件事情。
算了下复杂度 \(\mathcal{O}(2c^3)=2.5\times 10^8\),根据机房评测姬 \(10^8/s\) 的归宿和 \(2s\) 的时限以及胡乱想到的一堆优化,我断定复杂度正确,光速开写。
写完以后样例一遍过,优势在我。
过了一会小 L 宣布大样例 3 是错的,我慌了,为什么我的输出和错误的大样例一样???调了半天发现我的一个 >
写成了 >=
,改完以后得到了正确的输出。
意识到此时时间已经过去了 2h,优势不在我了。
开 T2,一眼二分,但是我根本不会 check
。
弃了,先写暴力,写完以后发现本地 RE 了。从这里开始我即将浪费大量时间来找一个空地址的错误。
好像调了 1h 把,心态已经彻底崩了,赛后想了想当时直接去想二分+状压的话也该想出来了,这场考试到这里就已经废了。
调完以后 T3 不会写暴力,时间紧迫,开 T4。
\(k=2,n=5000\) 的暴力很好写,写完以后发现已经没有时间了,剩下的一车部分分看都没看,直接拐回去卡 T1 的常了。因为要是 T1 挂了的话我说不定就爆蛋了。
一直到比赛结束。
赛后
最担心的事情发生了,T1 挂了,原因就是前文所说。
倒数了,T2 写了 1h 的暴力还挂了 5pts。
T1 删了一行以后直接 93pts。
说到底还是要注意计算每种算法的复杂度并精准分配数据点,不能分配错误,否则会挂一些本来能过的点。