[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。

说到底还是要注意计算每种算法的复杂度并精准分配数据点,不能分配错误,否则会挂一些本来能过的点。

posted @ 2024-10-17 22:03  Redamancy_Lydic  阅读(8)  评论(0编辑  收藏  举报