CF1392H - ZS Shuffles Cards
CF1392H - ZS Shuffles Cards
题目大意
给定$n$张卡和$m$个终止符,初始时随机打乱成排列,每次操作选出最前面的卡$x$拿走
1.如果$x$不是终止符,将$x$放入集合
2.如果$x$是终止符,那么重新打乱$n+m$张卡
求期望多少步$S$变成全集
分析
令$dp_i$表示当前手上有$i$张不同卡时期望多少步结束
按轮考虑,一轮期望操作次数固定,即
$\displaystyle \frac{\displaystyle \sum _{i=0}^n \binom{n+m-i-1} {m-1}(i+1)} {\displaystyle \binom{n+m} {m} }$
现在考虑从$dp_{i+j}$转移过来,当前的牌可以分为三类
1.手里有的
2.手里没有的
3.终止牌
我们计算$dp_{i+j}$向$dp_i$转移时的概率,并不需要管1类卡,只需要考虑2,3类卡的相对顺序
不妨直接忽略手里的$i$张卡,得到转移系数
$dp_{i+j}\rightarrow dp_i: \cfrac{\displaystyle \binom{n-i-j-1} {m-1} } {\displaystyle \binom{n-i+m} {m} }$
容易发现可以将$\displaystyle dp_{i+j}\binom{n-i-j-1} {m-1}$累和完成
注意$dp_i$有向$dp_{i}$自己的转移,需要解一次方程,因此需要求逆元
1 | const int N=4e6+10,P=998244353; |