3.31模拟赛T3题解

(由于种种原因所以没得题面qwq)

在字符集的大小为S的情况下,给定一个长度为n的串T,然后构造一个串a,每次等概率从S中取出一个字符放进a中,T出现的频率为 1 s n \frac{1}{s^n} sn1

为什么对于重叠的情况,这个也是成立的呢,是因为期望的可加性并不要求随机变量之间相互独立

倒不如说,如果不允许重叠,这个结论会变得不成立

比如字符集为a,考虑生成了串aaaa… ,T是aa

如果不允许重叠的话,频率为 t r a c 12 trac{1}{2} trac12,但允许重叠的话,频率是1

我们知道,第二种才是对的

所以我们得到了第一个结论

接着,将多次实验串拼接后,设 p 1 p1 p1 为 实验串的结尾, p 2 p2 p2 为不包括 p 1 p1 p1 的T串的结尾

那么也就是说 p 1 + p 2 = 1 s n p1+p2=\frac{1}{s^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*(\frac{1}{s^{n-nex[x]}}+\frac{1}{s^{n-nex[nex[x]]}}+....) p2=p1(snnex[x]1+snnex[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 ] ] + . . . . ) \frac{1}{s^n}-p1=p1*(\frac{1}{s^{n-nex[x]}}+\frac{1}{s^{n-nex[nex[x]]}}+....) sn1p1=p1(snnex[x]1+snnex[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 \frac{1}{s^n*(1+\frac{1}{s^{n-nex[x]}}+\frac{1}{s^{n-nex[nex[x]]}}+....)}=p1 sn(1+snnex[x]1+snnex[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+\frac{1}{s^{n-nex[x]}}+\frac{1}{s^{n-nex[nex[x]]}}+....)=\frac{1}{p1} sn(1+snnex[x]1+snnex[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]]}+....=\frac{1}{p1} sn+snex[x]+snex[nex[x]]+....=p11

那么 1 p \frac{1}{p} 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\frac{E(i+1)-E(F(i,c))+1}{m} 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即为所求

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值