CF1278F Cards

题目传送门

分析:
太!棒!了!学!到!虚!脱!

这里给出\(O(K^2),O(KlogK),O(K)\)三种解法

\(O(K^2)\)解法
考虑\(K\)的意义
相当于有一个长度为K的序列,每一个位置是一个独立的游戏,我们假设有\(c\)次游戏抽出了Joker
抽出Joker的轮次序列为\({C_1,C_2...C_c}\)
序列每一位选择一个轮次,于是便会出现\(c^K\)个序列
对于一个序列出现的轮次,我们要钦定这几轮一定抽出Joker,对于其他没有进入序列的轮次,我们并不关心
于是一个长度为\(K\),其中出现了\(p\)种轮次,那么这个序列出现的概率便是\(\frac{1}{m^p}\)
我们设\(f[K][p]\)表示长度为\(K\),其中出现了\(p\)种轮次的序列总数
进行\(dp\)

\[dp[i][j]=dp[i−1][j]∗j+dp[i−1][j−1]∗(n−j+1) \]

最后期望=概率*方案
代码很短

后面两个解法先放上这个博客
清晰美妙的式子推导,OrzOrzOrz

主要使用这两个推导公式:

\[n^m=\sum_{k=0}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}\binom{n}{k}k!=\sum_{k=0}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}n^{\underline k} \]

\[m^{\underline k}=\begin{Bmatrix}m\\k\end{Bmatrix}k!=\sum_{i=0}^{k}(-1)^{k-i}\binom{k}{i}i^m \]

\(O(KlogK)\)的解法,按照博客推到这个式子

\[\sum_{i=0}^{k}\begin{Bmatrix}k\\i\end{Bmatrix}n^{\underline i}p^{i} \]

这里按照上面第二个式子反演,使用NTT即可\(O(KlogK)\)解决

\(O(k)\)解法,将反演式子暴力带入答案式子

\[\sum_{i=0}^{k}i^k\binom{n}{i}p^i\sum_{j=0}^{k-i}(-1)^j\binom{n-i}{j}p^j \]

我们令\(f(i)=\sum_{j=0}^{k-i}(-1)^j\binom{n-i}{j}p^j\)
这里可以进行差分,暴力做减法合并和式就可以,可以得出递推式

\[f(i)=(-p)^{k-i}\binom{n-i-1}{k-i}+(1-p)f(i+1) \]

这个\(O(k)\)递推,然后\(O(k)\)求答案

留下了没有数理基础的泪水。。。

你可能感兴趣的:(CF1278F Cards)