【做题记录】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)\)

posted @ 2022-01-17 21:11  trsins  阅读(98)  评论(2)    收藏  举报