期望练习
期望练习
P1393 Mivik 的标题
不难想到一个暴力\(dp\),\(dp_{i,j}\)表式前\(i\)位匹配了\(j\)位的概率,如果\(n\)不大直接矩阵就行了
这里我们变化一下思路,考虑设\(f_i\)表示到\(i\)位第一次匹配到\(S\)的概率
不难发现答案即为\(\sum\limits_{i=1}^nf_i\)
对于计算\(f_i\),考虑\(\dfrac{1}{m^{|S|}}\)减去\(\sum\limits_{i=1}^{i-|S|-1}f_i\)以及\(\sum\limits_{j\in Border}f_{i-|S|+B_j}\)
前面的那个可以直接前缀和,后面那个的我们可以直接将\(Border\)分为\(log|S|\)个等差数列,同样分开前缀和即可(好像很麻烦)
这里介绍一个很新的东西
对于随机变量\(X\)
定义\(f(x)=\sum\limits_{i=0}Pr(X=i)x^i\),称之为概率生成函数
不难发现\(f(1)=1\)
\(f’(x)=\sum\limits_{i=1}iPr[X=i]x^{i-1}\)
则\(f'(1)=E(X)\)
对于这道题我们定义\(F(x)\)表示第一次匹配到\(S\)的\(n\)长度的生成函数
\([x^i]G(x)\)表示未匹配到\(S\)但已经选了\(i\)个字符的概率
对于这道题,我们要求的就是\(1-[x^n]G(x)\)
首先有个式子是\([x^i]F(x)+[x^i]G(x)=[x^{i-1}]G(x)\),这个不难理解
我们形式话一点就是\(F(x)+G(x)=1+G(x)x\)
\(F(x)=G(x)\times (x-1)+1\)
还有个式子,我们考虑对一个未完成序列后面直接接一个\(S\)
如果是长度为\(i\)的序列直接接了\(S\),那他一定会结束
我们设\(a_i\)表示\(i\)长度是不是\(border\)
则\([x^i]G(x)(\dfrac{1}{m})^{|S|}=\sum\limits_{j=1}^{|S|}a_j[x^{i+j}]F(x)(\dfrac{1}{m})^{|S|-j}\)
也即是\(G(x)(\dfrac{1}{m}x)^{|S|}=\sum\limits_{i=1}^{|S|}a_iF(x)(\dfrac{1}{m}x)^{|S|-i}\)
也即\(G(x)=\sum\limits_{i=1}^{|S|}a_i\dfrac{F(x)}{(\frac{x}{m})^i}=\sum\limits_{i=1}^{|S|}a_i\dfrac{(G(x)\times (x-1)+1)}{(\frac{x}{m})^i}\)
\(G(x)=((G(x)\times (x-1)+1))\sum\limits_{i=1}^{|S|}\dfrac{a_i}{(\frac{x}{m})^i}\)
好像化不走了
同时乘个\(x^S\)
\(G(x)\dfrac{x^S}{m^S}=(G(x)(x-1)+1)\sum\limits_{i=1}^{|S|}a_i(\dfrac{x}{m})^{|S|-i}\)
我们不妨将\(\sum\limits_{i=1}^{|S|}a_i(\dfrac{x}{m})^{|S|-i}\)记为\(H(x)\)
则\(G(x)\dfrac{x^S}{m^S}=(G(x)(x-1)+1)H(x)\)
\(G(x)=\dfrac{H(x)}{\dfrac{x^S}{m^S}-H(x)(x-1)}\),如果直接求逆或者\(bostan−mori\)
P4548 [CTSC2006]歌唱王国
和上题差不多,只是改成求期望生成多少长度可以得到\(S\)
不难发现就是\(F'(1)\)
\(F(x)=G(x)\times (x-1)+1\)
则\(F'(x)=G'(x)x+G(x)-G'(x)\)
\(F'(1)=G(1)=H(1)m^S=\sum\limits_{i=1}^{|S|}a_im^i\)
其实觉得这个东西很妙,\(F,G\)在后面接一段的推导自认为想不出了
大概可以用\(Dp\)推?
给国与赌场
大致题意:你有\(X\)的钱\((X<1)\),你可以考虑拿\(Y\)的钱去赌,有\(p\)的概率变成\(2Y\),\(p<\dfrac{1}{2}\),有\(1-p\)的概率变成\(0\),你每次的\(Y_i\)必须单调递增,如果不能拿出这样的\(Y\)为输,否则到\(1\)为赢,求在最优策略下赢的概率
由于\(p<\dfrac{1}{2}\),那其实拖得越久赢的概率越小,所以只要\(X>\dfrac{1}{2}\),我们就可以直接用\(1-X\)
对于\(X<\dfrac{1}{2}\),最优策略是我们全部赌完,不会证
还有一个等价的策略是直接取二进制小数位的最低位
剩下的\(Dp\)也很复杂,咕了
补充
条件概率\(P(A|B)=\dfrac{P(A\cap B)}{P(B)}\)
一个有意思的问题
1.一对夫妇有两个孩子,已知其中一个是女孩,求另一个也是女孩的概率
事件\(A\)一个是女孩
事件\(B\)另一个是女孩,\(A,B\)互相独立
\(P(A)=P(B)=\dfrac{1}{2},P(A|B)=\dfrac{1}{2}\)
2.一对夫妇有两个孩子,已知有女孩,求都是女孩的概率
事件\(A\)都是女孩,\(P(A)=\dfrac{1}{4}\)
事件\(A\)有女孩,\(P(B)=\dfrac{3}{4}\)
\(P(A|B)=\dfrac{1}{3}\),可以发现问题的关键在于有和其中一个是的区别(其实现在都不是很明白)
设\(B_i\)是对全集\(\Omega\)的划分
则\(P(A)=\sum P(A|B_i)P(B_i)\)
\(P(B_i|A)=\dfrac{P(A|B_i)P(B_i)}{\sum\limits P(A|B_j)P(B_j)}\)
上面的那个称为全概率公式,下面的称为贝叶斯公式(也就是考虑\(B_i\)权重的占比)
这里我们可以称\(P(A)\)为先验概率,\(P(A|B)\)为后验概率,即经过\(B\)的测试得到\(A\)更确切的概率
全概率公式可以当作原因推结果,而贝叶斯为结果推原因
BZOJ 3093
很明显你取\(p\)个球里有\(q\)个球是红色相当于一个测验,我们就是要求后验概率
\(A\)表示拿一个球是红色的事件,\(B\)就是上面的那个
\(P(A|B)=\dfrac{P(AB)}{P(B)}\),由于我们不知道原始的球,因此设\(C_k\)表示原来有\(k\)个红球
\(P(AB)=\sum\limits P(C_k)P(AB|C_k)=\sum\limits P(C_k)\dfrac{P(ABC_k)}{P(C_k)}=\sum P(C_k)P(B|C_k)P(A|BC_k)\)
\(P(B)=\sum\limits P(C_k)P(B|C_k)\)
\(P(C_k)=\dfrac{1}{n+1},P(B|C_k)=\dfrac{\binom{k}{q}\binom{n-k}{p-q}}{\binom{n}{p}},P(A|BC_k)=\dfrac{k-q}{n-p}\)
\(P(A|B)=\dfrac{\sum\limits_{k=0}^n\frac{1}{n+1}\dfrac{\binom{k}{q}\binom{n-k}{p-q}}{\binom{n}{p}}\dfrac{k-q}{n-p}}{\sum\limits_{k=0}^n\frac{1}{n+1}\dfrac{\binom{k}{q}\binom{n-k}{p-q}}{\binom{n}{p}}}=\dfrac{\sum\limits_{k=0}^n\binom{k}{q}\binom{n-k}{p-q}(k-q)}{\sum\limits_{k=0}^n\binom{k}{q}\binom{n-k}{p-q}(n-p)}\)
\(=\dfrac{\sum\limits_{k=0}^n\binom{k}{q+1}\binom{n-k}{p-q}(q+1)}{\sum\limits_{k=0}^n\binom{k}{q}\binom{n-k}{p-q}(n-p)}=\dfrac{q+1}{n-p}\dfrac{\sum\limits_{k=0}^n\binom{k}{q+1}\binom{n-k}{p-q}}{\sum\limits_{k=0}^n\binom{k}{q}\binom{n-k}{p-q}}\)
注意到\(\sum\limits_{k=0}^n\binom{k}{q}\binom{n-k}{p-q}\)长得有点想范德蒙德卷积,实际上也差不多\(\binom{n+1}{p+1}\),也就是考虑选前\(k\)个放\(q\)个球后面再加一个特殊的限制不重
即原式为\(\dfrac{q+1}{n-p}\dfrac{\binom{n+1}{p+2}}{\binom{n+1}{p+1}}=\dfrac{q+1}{p+2}\)
P4206 [NOI2005] 聪聪与可可
最开始看错题了/kk
因为猫会走两步,所以猫鼠之间的距离是递减的,直接\(dp\)就行了,不会出现环
如果这道题是走一步的话,好像环的大小不大,直接局部高消
UOJ 211
一个很有趣的题
首先\(V=E(x^2)-(E(x))^2\),先求\(E(x)\)
不同位置的期望会使我们先考虑第一次到达每一位置的概率,最后直接期望的线性性质加起来即可
设\(f(i,x,y)\)表示第\(i\)步第一次到达\((x,y)\)的概率
设\(g(i,x,y)\)表示第\(i\)步到达\((x,y)\)的概率
我们设\(p_i\)为向前后左右走的概率,\(dx_i,dy_i\)表示增量
很明显\(g(i,x,y)=\sum\limits_{i=0}g(i-1,x-dx_i,y-dy_i)p_i\)
然后考虑容斥
\(f(i,x,y)=g(i,x,y)-\sum\limits_{j=0}^{i-1}f(j,x,y)h(i-j,x,y)\)
其中\(h(i,x,y)\)为走\(i\)步回到原处的概率,也就是\(g(i,0,0)\)
\(f(i,x,y)=g(i,x,y)-\sum\limits_{j=0}^{i-1}f(j,x,y)g(i-j,0,0)\)
接着是求\(E(X^2)\),我们考虑将\(E(2\binom{X}{2}+X)=2E(\binom{X}{2})+E(X)\)
接下来问题在于\(E(\binom{X}{2})\),我们考虑将其考虑成在不同的位置中选择两个位置的方案总数,因此我们可以考虑在其中一个不同的位置上统计答案
即设\(h(i,x,y,z,w)\)表示\((x,y)\)第一次经过且前面已经经过\((x-z,y-w)\)的概率,很明显每个地方都有\(1\)的贡献
对于\(h(i,x,y,z,w)\)的计算,考虑枚举\((x-z,y-w)\)经过的第一次到达的步数,再减去\(x,y\)在\((x-z,y-w)\)第一次到达之前的概率
即\(h(i,x,y,z,w)=\sum\limits_{j=0}^{i-1}(f(j,x-z,y-w)-h(j,x-z,y-w,-z,-w))f(i-j,z,w)\)
这里五维肯定是不行的
这长得很想卷积
这里我们对\((x,y)\)求和,即\(s(z,w)\)
可以发现\((x,y)\)如果取遍全集,\(\sum h(j,x-z,y-w,-z,-w)\)相当于\(s(-z,-w)\),\((\sum f(j,x-z,y-w))\)同样可以取遍,我们设\(F(i)\)为\(\sum f(i,x,y)\)
则\(s(i,z,w)=\sum\limits_{j=0}^{i-1}(F(j)-s(j,-z,-w))f(i-j,z,w)\)
这个是不是可以\(FFT\)?\(f(i,j)=\sum\limits_{z,w}g(z,w)h(i-z,j-w)\),不过好像多了个\(log(n)\)
P1850 [NOIP2016 提高组] 换教室
没什么好说的,注意状态的设计就行了
CF335E Counting Skyscrapers
先处理第一问
可以发现的是\(B\)爬的轨迹是先爬到最高楼再缓慢下降
\(f_{i,h}\)表示当前还是处于往上爬时当前高度为\(h\)
\(f_{i,h}=(\sum\limits_{h'=0}^{h}\sum\limits_{j=1}^{i-1}(f_{j,h'}+2^{h'})\times (\dfrac{2^{h'}-1}{2^{h'}})^{i-j-1})\times\dfrac{1}{2^{h'+1}}\)
这里\(f_{i,h}\)好像可以直接用前缀和优化,可以看到\((f_{j,h'}+2^{h'})\times(\dfrac{2^{h'}}{2^{h'}-1})^{j+1}\)和\(i\)没关系
至于最后的答案我们可以直接枚举最高点
\(\sum\limits_{i=1}^{h'}\dfrac{1}{2^{i}}=1-\dfrac{1}{2^{h'}}\)
好像有问题
首先是这个期望的转移如果抽象为图的话,那到达某个节点是有概率的,因此这里我们算的应该是是条件概率,而且那个最高点的概率还想也得重新\(Dp\),设\(g_{i,h}\)表示前\(i\)个目前最高高度为\(h\)的概率,仔细一想会发现这个地方前驱的概率和不为\(1\)
这里我们先解决\(g\)
\(g_{i,h}=(\sum\limits_{h'=0}^{h}\sum\limits_{j=1}^{i-1}(g_{j,h'})\times (\dfrac{2^{h'}-1}{2^{h'}})^{i-j-1}))\times \dfrac{1}{2^{h+1}}\)
同样前缀和优化一下
\(f_{i,h}=(\sum\limits_{h'=0}^{h}\sum\limits_{j=1}^{i-1}(f_{j,h'}+2^{h'})\times \dfrac{(g_{j,h'})\times(\dfrac{2^{h'}-1}{2^{h'}})^{i-j-1}\times \dfrac{1}{2^{h+1}}}{g_{i,h}}\)
额,直接计算\(g\)会爆精度,小丑了
好像有方法可以解决,再开一维?
算了,先考虑第二问
考虑高度为\(h\)的线,他对\(B\)的贡献明显为\(2^h\)
接下来对于高度为\(h\)的线,它能延续的长度期望为\(\sum\limits_{i=1}i(1-\dfrac{1}{2^h})^{i-1}(\dfrac{1}{2^{h}})\)
打个表,你会发现这个似乎是\(2^{h}\),然后\(A\)的期望便与\(B\)是等价的
具体证明就是这个其实很像一个模型,就是你有\((1-\dfrac{1}{2^h})\)的概率\(+1\)
于是答案等价于\(\sum\limits_{i=1}((1-\dfrac{1}{2^h}))^i=2^{h}\)
对于第一问,我们不妨参考这个思路
对于一个高度为\(h\)长度为\(l\)的线,它出现的概率是\(\dfrac{1}{2^{2h}}(1-\dfrac{1}{2^h})^{l-1}\),一共有\(n-l\)条
对于它的贡献,很明显是\(2^h-\)它覆盖的线
对于覆盖的线,这条线一定是高度为\(h-1\),至于线的条数,不难发现是这段区间内高度为\(h-1\)的数量\(+1\)
注意这里是在全部低于\(h\)的情况
因此线条数的期望为\(l-1\dfrac{\dfrac{1}{2^{h}}}{1-\dfrac{1}{2^{h}}}=\dfrac{l-1}{2^{h}-1}\)
最后假定最开始全部都是高度为\(0\)的楼即可
感觉说的有点模糊,但本质就是利用期望的线性性质将答案拆分到每个线段上,每个线段能贡献的前提是被覆盖的即被计算
[AGC016E] Poor Turkeys
降智题
最开始以为是个图论,然后就感觉可以把每次吃完不行的组剔除,好像也不行
实际上,如果我们钦定一个\(i\)存活,不难发现和\(i\)有关的人选的方案是一定的,而且是倒着定的
进一步考虑,对于\(i,j\),考虑使他们存活的方案为\(S_i,S_j\),如果\(S_i,S_j\)刀的人有交叉,那一定会出现有一个人刀不了的情况
至于要刀的人,我们也可以理解为前\(x\)人依然存活,在\(x\)处刀了它
我们考虑用这样的思路维护\(S_i\)即可
CF708E Student's Camp
很明显,行与行之间分开考虑
设\(P(l)\)为前\(l-1\)被摧毁,\(l\)没被摧毁
很明显\(P(l)=\binom{k}{l-1}p^{l-1}(1-p)^{k-(l-1)}\)
由于对称性,从左边还是右边只和长度有关
我们设\(dp_{i,l,r}\)为前\(i\)局面为\(l,r\)且连通的概率
\(dp_{i,l,r}=\sum\limits_{l'\le r,r'\ge l}dp_{i-1,l',r'}p(l)p(m-r+1)\)
时间复杂度起飞
转化一下,我们记\(f_{i,r}=\sum\limits_{l=r}dp_{i,l,r}\),\(s_{i,r}=\sum\limits_{r'=r}f_{i,r'}\)
同样左右可以互换
这里我们容斥一下
\(dp_{i,l,r}=p(l)p(m-r+1)(s_{i-1,m}-s_{i-1,l-1}-s_{i-1,m-r})\)
然后\(f_{i,r}=\sum\limits_{l=r}dp_{i,l,r}=p(m-r+1)\sum\limits_{l=r}p(l)(s_{i-1,m}-s_{i-1,l-1}-s_{i-1,m-r})\)
\(=p(m-r+1)(\sum\limits_{l=r}p(l)(s_{i-1,m}-s_{i-1,m-r})-\sum\limits_{l=r}p(l)s_{i-1,l-1})\)
前缀和优化一下即可,这个优化还是很有趣的