【做题记录】CF1278F Cards
-
\(\text{CF1278F Cards}\)
- 斯特林数、组合数学
题目:
有 \(m\) 张牌,其中有一张是王牌。将这些牌均匀随机打乱 \(n\) 次,设有 \(x\) 次第一张为王牌,求 \(x^k\) 的期望值。
答案对 \(998244353\) 取模。
原题 \(k\le 5000\),加强版 \(k\le 10^7\)。
题解:
被 dp 虐惨了过来愉悦身心了属于是。
设 \(p=\dfrac{1}{m},q=1-p\)。
显然答案为:
\[\begin{aligned}ans & = \sum_{i=1}^n\dbinom{n}{i}p^iq^{n-i}i^k \\ & =\sum_{i=0}^n{n\choose i}p^iq^{n-i}\sum_{j=0}^i\begin{Bmatrix}k\\j\end{Bmatrix}{i\choose j}j!\\ & =\sum_{j=0}^n j!\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=j}^n{n\choose i}{i\choose j}p^iq^{n-i}\\ & =\sum_{j=0}^nj!\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=j}^n{n\choose j}{n-j\choose i-j}p^iq^{n-i}\\ & =\sum_{j=0}^nj!\begin{Bmatrix}k\\j\end{Bmatrix}{n\choose j}\sum_{i=0}^{n-j}{n-j\choose i}p^{i+j}q^{n-i-j}\\ & =\sum_{j=0}^nj!\begin{Bmatrix}k\\j\end{Bmatrix}{n\choose j}p^j\sum_{i=0}^{n-j}{n-j\choose i}p^iq^{(p-j)-i}\\ & =\sum_{j=0}^nj!\begin{Bmatrix}k\\j\end{Bmatrix}{n\choose j}p^j(p+q)^{n-j}\\&=\sum_{j=0}^kj!p^j{n\choose j}\begin{Bmatrix}k\\j\end{Bmatrix} \end{aligned}
\]
如果是原题的话,现在使用斯特林数的朴素 \(O(k^2)\) 递推即可通过。
或者使用预处理行/NTT 的方式 \(O(k\log k)\)。
下面是加强版:
然后考虑化解开斯特林数:
\[\begin{aligned}ans & = \sum_{j=0}^kj!p^j{n\choose j}\frac{1}{j!}\sum_{i=0}^j{j\choose i}(-1)^{j-i}i^k \\ &= \sum_{i=0}^ki^k\sum_{j=i}^k{n\choose j}{j\choose i}p^j(-1)^{j-i} \\ &= \sum_{i=0}^k (-1)^ki^k{n\choose i}\sum_{j=i}^n{n-i\choose j-i}(-p)^j\\ &= \sum_{i=0}^k(-1)^ki^k{n\choose i}\sum_{j=0}^{k-i}{n-i\choose j}(-p)^{j+i}\\ &=\sum_{i=0}^kp^ii^k{n\choose i}\sum_{j=0}^{k-i}{n-i\choose j}(-p)^j\end{aligned}
\]
设 \(f(i)=\displaystyle\sum_{j=0}^{k-i}{n-i\choose j}(-p)^j\),那么原式变成 \(O(k)\) 递推的式子:
\[ans=\sum_{i=0}^kp^ii^k{n\choose i}f(i)
\]
考虑求出 \(f(i)\),显然 \(f(k)=1\),那么我们考虑逆推。
\[\begin{aligned}f(i) & = \sum_{j=0}^{k-i}{n-i\choose j}(-p)^j\\&= \sum_{j=0}^{k-i}({n-(i+1)\choose j}+{n-i-1\choose j-1})(-p)^j\\&= \sum_{j=0}^{k-i}{n-(i+1)\choose j}(-p)^j+\sum_{j=0}^{k-i}{n-i-1\choose j-1}(-p)^j\\&= f(i+1)+{n-i-1\choose k-i}(-p)^{k-i}+(-p)\sum_{j=0}^{k-(i+1)}{n-(i+1)\choose j}(-p)^j\\&= q\times f(i+1)+{n-i-1\choose k-i}(-p)^{k-i}\end{aligned}
\]
筛完后直接递推。
时间复杂度 \(O(k)\)。

浙公网安备 33010602011771号