ABC268 E~Ex
E
恶心,差分维护三段函数,细节有点恶心
具体细节看代码。
F
简单贪心
G
设 \(P_{i,j}\) 为字符串 \(i\) 字典序比字符串 \(j\) 小的概率,有如下几条结论:
- 若 \(s_j\) 是 \(s_i\) 的前缀,那么 \(P_{i,j}=0\)。
- 若 \(s_i\) 是 \(s_j\) 的前缀,那么 \(P_{i,j}=1\)。
- 否则 \(P_{i,j}=\dfrac{1}{2}\),由对称性易知。
对于 \(i\) 来说,若它的第一类数量是 \(A_i\),第二类数量是 \(B_i\),那么 \(i\) 的期望排名是 \(A_i\times1+B_i\times0+\dfrac{N-A_i-B_i}{2}=\dfrac{A_i-B_i+N}{2}\)。
那么把所有字符串插进 Trie 里简单统计一下就好了。
具体细节看代码。
Ex
一个文本串,多个模式串,想到 AC 自动机。
将模式串都加入 AC 自动机中,然后拿文本串在自动机上跑,如果跑到一个包含某个模式串的状态,就把当前位置改成 *
,然后重新从自动机的根开始跑。
具体细节看代码。