CF1392H

题意

给定(n,m),有(n)张好牌,(m)张坏牌。
每轮游戏如下:
一开始将牌打乱,然后从前往后抓牌,若抓到坏牌,退出此轮,如果所有的好牌都抓过,则结束游戏,否则开启一轮新游戏。
注意之前的某轮抓的牌也称其抓过
求抓的牌的期望次数。

做法一

(egin{aligned} E(抓牌次数)&=sumlimits_{i=1}^{infty}E(第i轮的贡献)\ &=sumlimits_{i=1}^{infty}P(前i-1轮没有抓过所有的好牌)cdot E(第i轮的抓牌次数)\ &=E(某一轮的抓牌次数)cdot sumlimits_{i=1}^{infty}P(前i-1轮没有抓过所有的好牌)\ &=E(某一轮的抓牌次数)cdot E(进行的轮数)\ end{aligned})

(E_1=E(某一轮的抓牌次数)),有很多种计算的方式,这里给出一种较为简单的方法。
一定会抓一张坏牌,这里贡献为(1),而一张好牌被抓,概率为在所有坏牌的前面。
(E_1=1+frac{n}{m+1})

考虑计算(E(进行的轮数))
(f_i)为:以还有(i)张好牌没抓过的状态开始,期望还要抓多少轮
还有(i)张好牌没抓过,那么其实(n-i)张已经抓过的好牌可以完全忽略了。
那么现在只需要考虑好牌(抓过的全部忽略掉,现在在的均为未抓过的),与坏牌。好牌则继续抓,坏牌则开启下一轮。

[egin{cases} f_i=frac{i}{i+m}f_{i-1}+frac{m}{i+m}(f_{i}+1),~~~~~~~~(i>1)\ f_1=m+1.\ end{cases}]

(f_i=m+1+sumlimits_{k=2}^i frac{m}{k})

做法二

这里算(E(进行的轮数))有点不同
考虑( ext{min-max})容斥
答案为(sumlimits_{i=1}^n {nchoose i}(-1)^{i+1}g_i),其中(g_i)为钦定(i)张好牌,最小的出现轮数的期望

显然(g_i=frac{m+i}{i})

做法三

来复读一下一个nb做法

考虑( ext{min-max})反演,单独看一个集合(T),令(k=|T|)
(g_i)为一轮进行了(i+1)次抓牌(即抓了(i)张好牌),没有抓过集合(T)中牌的概率,令(G_k(x))为生成函数,显然有:

[G_k(x)=sumlimits_{i=0}^{infty}frac{m{n-kchoose i}i!(n+m-i-1)!}{(n+m)!}x^{i+1} ]

(f_i)为结束时抓了(i)次牌的概率,令(F(x))为生成函数,显然有:

[egin{aligned} F(x)&=sumlimits_{k=1}^n {nchoose k}(-1)^{k+1}(G_0(x)-G_k(x))(sumlimits_{i=0}^{infty}G_k^i(x))\ &=sumlimits_{k=1}^n {nchoose k}(-1)^{k+1}(G_0(x)-G_k(x))frac{1}{1-G_k(x)}\ &=1+sumlimits_{k=1}^n {nchoose k}(-1)^{k}(1-G_0(x))frac{1}{1-G_k(x)}\ end{aligned}]

(ans=frac{dF(x)}{dx}),由于(G_0(1)=1),得到:

[frac{dF(1)}{dx}=-sumlimits_{k=1}^n {nchoose k}(-1)^k G_0'(1)frac{1}{1-G_k(1)} ]

(G_0'(1))容易在线性时间内求得

考虑(G_k(1))的组合意义:(T)集合内的数在第一次出现坏牌的位置后,其余的任意,这种概率,容易得到:(G_k(1)=frac{m{n+mchoose n-k}(n-k)!(m+k-1)!}{(n+m)!})

原文地址:https://www.cnblogs.com/Grice/p/14457641.html