CSP-S 2025 游记

实则并非游记,因为直接在撇捺中学考。

同时本地人对机房电脑们是否愿意陪考生跑完全程持怀疑态度。考前一天上午去试了一下新的键鼠和系统,结果电脑没问题,键盘的 CTRL 是坏的……好吧,好像要考虑的不只是电脑。

晚上就让我们滚回去了。

复习板子的时候突然一个激灵:要是考数论我不完了?依稀记得上次我做数论还是在一年前。

昔遭 lwz、xyt、yzq 诸数论俊杰所碾,后闻数论与字符串之试频锐减,窃喜难禁。然今复思之:茂但言“大抵不考”,岂曰“定然不试”耶?休矣!今吾数论之技,唯余五级(仅同余式一项)耳!

滚去复习了下数论,然后就直接开摆了。

Day 1

在一楼等的突然看见初一孩子打音游,我看着他点出残影的手指,想到自己的手速……

上去之后坐在靠窗的位置,左右都是 NK 的人。

速开 T1,直接贪心进贡献最大的一个组,至多有一个大于 \(n/2\),调整即可,14:40 过大样例。

开 T2,最初只会有 \(n-1\) 条边有用。\(k\) 只有 \(10\),看着就非常暴力,直接暴力加排序复杂度会来到 \(\text O(nk2^{k-1}\log n)\) 似了,想一想发现可以用搜索的方式一个一个加,加的时候就可以直接用归并来排序,每加一个点就跑一边 kruskal 然后将边缩成 \(n-1\)

此时复杂度 \(\text O(2^k n\alpha(n))\)

15:10 过大样例,效率有待提升。

然后 T3 来了!我一眼就感觉这题非常 AC 自动机!但是这个想法被我否掉了,原因有二:

  1. AC 自动机不是提高组考点
  2. md 不是说了不考字符串了吗?哥们早就忘了怎么写 AC 自动机了!啊!!!只复习了数论啊!!!

好的,那就 kmp 罢,已知字符串哈希 >= kmp(雾,所以直接使用哈希。

然后我蒙了,想了 2h 发现想不出来!我只能观察得知若 \(s_{i,1},s_{i,2}\) 能作用于 \(t_{i,1},t_{i,2}\),则 \(s_{i,1},s_{i,2}\) 第一个与最后一个不同的位置要与 \(t_{i,1},t_{i,2}\) 相同!我们暂记其为 \(fi\)\(la\),然后我直接将 \(fi\)\(len_i\) 的子串做个哈希再做个离散化最后扔到 vector 里头!统计答案是枚举 \(s\) 最后一位填到 \(t\) 的哪里,再使用 vector 枚举判断。

为了防止被卡,我再统计了字符串翻转后如上操作,两者比较使用最优。

所以我的复杂度可以大致做到 \(Ω(ans)\),就很逆天。

但是我感觉非常有希望,因为总司令总是保守的!

然而一出考场我突然发现我好像降智了!而且是降大智!这个 B 性质不就直接给我卡没了吗?艹

总之当时打完这个神秘东西我就滚去看 T4 了,被降智的我一眼就感觉 72 的暴力很好打,然后就滚去想正解。

这种求满足条件的排列数的题一般都是找到某个单调性然后基于此直接 dp。

但我没找到……

我就去打暴力,先打了 \(m=1,n\),然后去打 \(s_i=1\) 的,一开始我感觉这很简单啊,不就是二项式反演吗?打着打着我发现过不了大样例!定睛一看,好像二的是我。

没办法了,只剩 15min,抓紧去打 \(\sum s \le 18\) 的。没想出来,就转去想 \(n\le 18\),发现就是个简单状压。

后检查代码,突然发现 \(m=1\) 的假了!

\(\text{保持安静}\)

我 !


出考场后我人都麻了,原来 300 是稳的,现在是似掉了,只能说好久没降智成这样过了。

去与各位神犇交流。

忽闻 tzy 仰天悲啸:“吾虽通 T4 大样例,然未存代码!”闻之扼腕,默祝安好。又闻 fxl 自陈得 324 ,仆方欲膜拜,忽闻旁言:“T3 须特判 t1、t2 长度相异之况。” fxl 愕然瞠目,余转首与其对视,但闻其顿足曰:“呜呼!休矣!”后未闻有破 T3、T4 者。嗟夫!撇捺中学前路其修远兮!

posted @ 2025-11-01 22:14  paper_zym  阅读(22)  评论(0)    收藏  举报