CSP2024-15
A
题意:给定字符集大小 \(m\),求长度为 \(n\) 没有任意一个前缀是回文串的字符串个数。\(n \le 10^7\)。
长度为 \(i\) 的回文串个数非常好求:\(c(i) = m^{\lceil\frac{i}{2}\rceil}\)。
我们称一个字符串 \(s\) 是好的当且仅当 \(s\) 是回文串且不存在一个真前缀是好的。
设 \(f(i)\) 表示长度为 \(i\) 的好的字符串个数。则最后的非法方案数等于 \(\sum_{i = 2}^n f(i) \times m^{n - i}\),这是不重不漏的(以第一次出现的回文串作为代表元)。
如果一个长度为 \(i\) 的回文串含有长度为 \(j\) 的好的前缀,一定有 \(j \le \lceil\dfrac{i}{2}\rceil\)。
画个图理解一下,红蓝线分别表示 \(i, j\) 的回文中心,如果 \(j\) 超过红线,则出现"绿黄"回文串,同时在 \(j\) 的左侧出现"黄绿"回文串,与 \(j\) 是好的矛盾。

因此需要减掉所有包含 \(\le\lceil \frac{i}{2}\rceil\) 的好的前缀的情况,\(f(i) = c(i) - \sum\limits_{j = 2}^{\lceil \frac{i}{2}\rceil} f(j) \times m^{\lceil \frac{i}{2}\rceil - j}\)。
注:以上所称"回文串"皆不包含长度等于 \(1\) 的情况。submission
B
题意:长度为 \(n\) 的序列,支持区间与,区间或,区间查询最小值。\(n, q \le 5 \times 10^5\)。
C
到底什么时候才开始补网络流呢?
D
题意:

浙公网安备 33010602011771号