3.31模拟赛T3题解
Posted Flame♡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.31模拟赛T3题解相关的知识,希望对你有一定的参考价值。
(由于种种原因所以没得题面qwq)
在字符集的大小为S的情况下,给定一个长度为n的串T,然后构造一个串a,每次等概率从S中取出一个字符放进a中,T出现的频率为 1 s n \\frac1s^n sn1
为什么对于重叠的情况,这个也是成立的呢,是因为期望的可加性并不要求随机变量之间相互独立
倒不如说,如果不允许重叠,这个结论会变得不成立
比如字符集为a,考虑生成了串aaaa… ,T是aa
如果不允许重叠的话,频率为 t r a c 12 trac12 trac12,但允许重叠的话,频率是1
我们知道,第二种才是对的
所以我们得到了第一个结论
接着,将多次实验串拼接后,设 p 1 p1 p1 为 实验串的结尾, p 2 p2 p2 为不包括 p 1 p1 p1 的T串的结尾
那么也就是说 p 1 + p 2 = 1 s n p1+p2=\\frac1s^n p1+p2=sn1 ①
那么考虑什么位置会得到 p 2 p2 p2
(这里少一张图 回来补)
那么, p 2 = p 1 ∗ ( 1 s n − n e x [ x ] + 1 s n − n e x [ n e x [ x ] ] + . . . . ) p2=p1*(\\frac1s^n-nex[x]+\\frac1s^n-nex[nex[x]]+....) p2=p1∗(sn−nex[x]1+sn−nex[nex[x]]1+....) ②
(注意 因为不能多一个完整的串 所以 n e x [ . . . ] nex[...] nex[...]不能=0)
那么,将①带入②
得到
1
s
n
−
p
1
=
p
1
∗
(
1
s
n
−
n
e
x
[
x
]
+
1
s
n
−
n
e
x
[
n
e
x
[
x
]
]
+
.
.
.
.
)
\\frac1s^n-p1=p1*(\\frac1s^n-nex[x]+\\frac1s^n-nex[nex[x]]+....)
sn1−p1=p1∗(sn−nex[x]1+sn−nex[nex[x]]1+....)
移项之后得到
1
s
n
∗
(
1
+
1
s
n
−
n
e
x
[
x
]
+
1
s
n
−
n
e
x
[
n
e
x
[
x
]
]
+
.
.
.
.
)
=
p
1
\\frac1s^n*(1+\\frac1s^n-nex[x]+\\frac1s^n-nex[nex[x]]+....)=p1
sn∗(1+sn−nex[x]1+sn−nex[nex[x]]1+....)1=p1
s n ∗ ( 1 + 1 s n − n e x [ x ] + 1 s n − n e x [ n e x [ x ] ] + . . . . ) = 1 p 1 s^n*(1+\\frac1s^n-nex[x]+\\frac1s^n-nex[nex[x]]+....)=\\frac1p1 sn∗(1+sn−nex[x]1+sn−nex[nex[x]]1+....)=p11
s n + s n e x [ x ] + s n e x [ n e x [ x ] ] + . . . . = 1 p 1 s^n+s^nex[x]+s^nex[nex[x]]+....=\\frac1p1 sn+snex[x]+snex[nex[x]]+....=p11
那么 1 p \\frac1p p1 是什么呢!
频率 p p p 的含义是:对于每一个字符,串S的出现次数
那么它的倒数,就是出现一个完整串 S S S 的期望!
所以我们可以处理出一个 E ( i ) E(i) E(i) 表示从任何字符都没有到出现 i i i 这个前缀的期望步数
它的朴素转移为: E ( i + 1 ) = E ( i ) + ∑ E ( i + 1 ) − E ( F ( i , c ) ) + 1 m E(i+1)=E(i)+\\sum\\fracE(i+1)-E(F(i,c))+1m E(i+1)=E(i)+∑mE(i+1)−E(F(i,c))+1 (我没有写代码验证,但我感觉原题解写的不对,这是我自己修正的)
那么,根据上面的性质, E ( i ) = E ( n e x [ i ] ) + m i E(i)=E(nex[i])+m^i E(i)=E(nex[i])+mi
E即为所求
以上是关于3.31模拟赛T3题解的主要内容,如果未能解决你的问题,请参考以下文章