CSP2025-S 坠机记
省流:未能完成 AK 的心愿。
初赛随便考的,94 分。
复赛依然是在七高,成功在 14:20 抵达教室,发现我所在的机房电脑性能要烂一些,然而键盘要好一些,应该是好事。位置是靠窗,比较好,开考前准备写板子,但是被制止了。
开考,然后大概看了一眼四个题,发现压轴题是计数!非常激动。
然后想 T1,我认为这是反悔贪心的状物,然后就直接往这方面想了,想了一会儿发现不太对劲。这个时候再看时间,发现我已经对着 T1 瞪了几乎半个小时了,就开始有点慌了,最后直接来了个比较暴力的做法,先钦定全选 A 然后进行调整,又写了大概半个小时。写完才意识到我好像把问题加强了(可以把 \(\frac n 2\) 改成任何数),此时已经过去 1h 了,但事已至此,只能继续做后面的题了。
T2 一开始觉得是建图然后可以直接跑最小生成树,然后感觉不太对,发现这个应该能归约到最小斯坦纳树,所以直接 \(2^k\) 枚举,其他边在一开始排序就可以做到 \(\mathcal{O}(m\log m+nk2^k)\),通过了大样例但发现大样例数据规模比较小,就想着先去看后面的题最后再来造极限数据。这个时候大概是 16:00。
T3 几乎一眼,去掉左右相同的部分,划分为若干等价类,然后对两边建 trie 树,最后跑二维数点,可能是所有题中思考时间最少的。但是这个东西是很多部分拼起来,代码很长,所以写了将近半个小时,写了大概 3k,然后发现一直通不过第 \(3\) 个大样例,然后我心态比较炸,就没想去写对拍。最后瞪了好久发现有个地方把 \(l\) 写成 \(l+1\) 了,事实上我只需要造个小样例就可以发现错误。调完之后是 17:00 左右。
最后一题,读完题没看到是之前放弃的和没通过的加起来要小于限制,以为是只看没通过的,然后就认为是唐题,结果写完发现一直过不了第二个大样例,又调了好久才发现是题读错了,然而此时已经 17:40 了。
这个时候我就变得比较绝望了,但是又很快冷静下来,因为计数是我的强项,应该有机会做出来。我发现可以设 \(f_{i,j,k}\) 表示前 \(i\) 个人,没过的有 \(j\) 个,\(\le j\) 的用了 \(k\) 个的方案数,那这个转移不就和前几周打过的 ARC207A 一模一样了?并且复杂度是 \(\mathcal{O}(n^3)\),非常胜利。然后一直写到 18:10,开始变得比较激动,但最后关键那一行的式子我推错了,并且我发现我又是没通过第二个样例,这个时候就真的冷静不下来了,我尝试造小数据验证,但是已经来不及了...
最终只交了个暴力上去,估分 100+100+100+8=308。并且 T2 有可能会被卡常。
出来后和机房其他同学一起准备去吃火锅,路上发现 T1 非常简单,不知道我为什么做了个加强版,并且这个题耗时比 T2T3 都多。但是做出 T3 的同学好像不多,怎么回事呢?路上的心情一直很不好,因为我错过了最后一次可以 AK CSP-S 的机会,并且还是死在了最擅长的计数题上。后面和同学吃了火锅,又去打了台球,基本上缓过来了。
第二天起床准备再看下 T4,在比较冷静的情况下立刻发现哪推出问题了,然后花 10min 写完代码在洛谷上通过了。又写了 T2 代码发现可以轻松通过。这个时候彻底绷不住了,因为我只需要在考场上改一行代码就可以 AK,所以 T1 想太久、T3 调太久、T4 读错题,只要任何一个环节没出问题都能让我写出 T4。但是现实没这么多如果,没有调出 T4 就是事实。
总结:这次考试有很多失误的地方,一开始 T1 花太长时间就让我心态受了些影响,后面只想快点做完所有题,所以有很多失误。这和去年考 CSP-S 非常相似,也是以为要 AK 了很激动最后就炸了。此后的考试一定要注意,不要让心态受到影响,一定要冷静下来想所有题目,并且要提高思考中等难度题目的速度。
这次 CSP 是非常遗憾的,但好在这个分数不是很重要,就当成给 NOIP 攒 rp 了,希望能在 NOIP2025 中考出一个好成绩吧!