CSP2025游记

Day 1

12点出发,到了之后先吃饭,然后大概一点半所有去考场。

路上偶遇 Ethan,遂与其一起去考场。

门口碰到教练,合影是少不了的,然后就进去了。

正想着往前走结果要先去候考室?一进去候考室迅速和 Ethan 抢占第一排,结果 zkc 下来说大家都在上面(

所有人坐成一排,于是每次来一个人都要执行右移操作。

前面坐了一个学弟,声称要把大家的洛谷号都在他的游记里开盒,但我忘了他的洛谷号是啥(

后来又来了几个人,wzy 一直在疯狂翻看各种“技巧总结大全”,/bx。

lza 贴心提醒大家上午 J 组没有任何题给了极限数据,所以下午也有可能没有?

但是一直没等到 FLY,原来他没去候考室直接进去了。

然后就去考场了,发现考场竟然是单人单机位的豪华隔间,那很好了。

14:30~15:20

开始看题,今年的 checker 怎么要自己输入文件名呢?

第一眼先看数据范围,都是 1s,512MB(是的,看漏了2048MB),感觉很正常。

T1 第一秒这不是网络流板子吗?相信绝对会有人写网络流。

但显然那个人不是我,第二秒发现 \(> n/2\),所以直接先贪心,不合法再贪心地调整即可。

迅速写代码,这个键盘好硬啊,敲着手疼。

迅速过了大样例后就看 T2 了,大概 14:45 左右。

T2 一眼觉得就是 MST,总算有图论题了!

一看数据范围 \(k\le 10\) 肯定要状态,想了一会儿发现可以枚举特殊点的子集然后求 MST。

但是这样是 \(O(2^k m \log m)\) 的,凭借着对 MST 各种奇妙性质的掌握意识到只有原图的 MST 的边才有效,边可以提前排序,所以可以变成 \(O(2^k k n \alpha(n))\),感觉非常卡的样子,算一算大概 \(10^8\)

但是觉得这毕竟 T2,不能太难,想了 5 分钟想不到更好的做法就写了,最开始大样例还 WA 了,调了一会儿发现是经典的变量名打错了。

最后一个大样例跑了 0.5s,但是发现这不是极限数据,看来和 J 组是一样的。

造了一组极限数据,发现跑了 1.2s,怒了,发现读入 \(\ge 10^6\) 于是果断使用快读,然后就变成 \(0.8s\) 了,觉得可以接受,就先跳了。

15:20 ~ 16:00

最绝望的 40 分钟。

上来先看 T3,然后迅速发现关键在于两个字符串第一次不同和最后一次不同之间的位置。

然后发现这个问题好像不弱于多模字符串匹配??????并且只能想到两个字母拼在一起作为一个字符的方法,发现只能用 AC 自动机,且空间都是 \(O(L|\Sigma|^2)\)

但是清晰记得联赛的字符串考点就三个:Trie,哈希,KMP,所以这题肯定有不用 AC 自动机的写法,况且这个 AC 自动机的转移表都开不下。

KMP尝试了一下没有啥用,哈希能想到 \(O(L\sqrt{L})\) 的按长度枚举的解法,但是显然数据范围不是这个做法啊。

想到 15:40 没想出来就先跳了,先去看 T4。

T4 是计数题,想了 20 分钟还是没啥想法,T3 没想出来心态不太好,感觉还是要把 T3 做出来

16:00 ~ 17:00

回过头看 T3,仔细查看部分分,这个特殊性质瞬间点醒了我,原来第一个不同位置和最后一个不同位置往前是相等的!所以我们按照中间哈希然后查一下相同哈希值的有多少前面长度和后面长度都小于询问的即可。这就是简单二维偏序。

是的,最开始我把特殊性质的做法想成了正解。

然后迅速写代码,只要一个二维偏序很好写,结果过不去第三个大样例,想了一会儿发现假了,不仅是长度,而且应该是前缀。

那就需要用 Trie,结果发现空间是 \(O(L|\Sigma|)\),想不通 512MB 为什么开的下,总不能真的用 map 吧。

算了以下这个 Trie 大概需要 1000MB 且没啥优化空间。

想着想着又回头看了一眼数据范围,突然发现是 2048MB,差点又因为没看时空限制挂了(

然后迅速把原来的代码改成 Trie,求个 dfs 序二维数点即可,改完后就过了大样例。

这是还剩大概一个半小时。

17:00 ~ 17:50

必须把 T4 做出来,这题感觉 AK 的得有一车人。

开始玩 T4,尝试从特殊性质入手但是没啥思路。注意到这是排列计数,排列计数往往都是困难的,做出来需要很强的性质。

玩着玩着发现如果先钦定每个位置是否雇佣,则限制是若干个 $\le $ 和 $> $ 组成的,且数字是单调的。

注意到如果都是 $\le $ 这就是经典的 “已经没有什么好害怕的了”,那就容斥呗!然后迅速想到了 \(O(n^4)\)\(dp\) 并写完代码,然后发现实际上有一维是没有用的,去掉就是 \(O(n^3)\),一发过掉所有大样例。

17:50 ~ 18:30

感觉很容易挂分的样子,回过头仔细检查,把 T3 每个数组都检查了一遍是否开够了。

感觉四个题都不太好拍,就测了一下一些小的边界数据。

然后就结束了。

后记

没挂。

posted @ 2025-11-03 20:52  rlc202204  阅读(14)  评论(0)    收藏  举报