题解:AT_agc038_e

Luogu AT

考虑 \(\min-\max\) 容斥(详见 OI-wiki),有:

\[E(\max S)=\sum_{T\subseteq S}E(\min T)(-1)^{|T|+1} \]

\(E(\max S)\) 也就是全集 \(S\) 中所有元素都被摇完的期望,\(E(\min T)\) 则是 \(T\) 集中被摇完一个元素的期望。接下来考虑计算 \(E(\min T)\),首先要把 \(T\)\(S\) 独立开,通过首尾相减可得摇出 \(T\) 中任意一个元素的期望为:

\[\sum_{i=0}^\infty(\frac{\sum_{i\notin T}A_i}{\sum_{i\in S}A_i})^i=\frac{\sum_{i\in S}A_i}{\sum_{i\in T}A_i} \]

接下来需要用一个常见的 trick,即将一个元素摇完 \(B_i\) 次的期望就是将所有元素摇 \(<B_i\) 次的概率之和。

设每个元素被摇出了 \(c_i\)\(c_i<B_i\)\(\sum c_i=k\))次,则其概率为:

\[k!\prod_{i\in T}\frac{A_i^{c_i}}{(\sum_{j\in T}A_j)^{c_i}c_i!}=\frac{k!}{(\sum_{i\in T}A_i)^k}\prod_{i\in T}\frac{A_i^{c_i}}{c_i!} \]

进而有:

\[E(\max S)=\sum_{T\subseteq S,T\neq\varnothing}(-1)^{|T|+1}\frac{\sum_{i\in S}A_i}{\sum_{i\in T}A_i}(\sum_{c_i<B_i,\sum c_i=k}\frac{k!}{(\sum_{i\in T}A_i)^k}\prod_{i\in T}\frac{A_i^{c_i}}{c_i!}) \]

发现我们只需记录 \(\sum_{i\in T}A_i\)\(k=\sum c_i\) 这两个需要最后处理的值即可,而容斥系数可以在 DP 过程中直接计算,设 \(f_{i,j,k}\) 表示选了 \(i\) 个元素,\(\sum_{i\in T}A_i=j,k=k\) 时的 \(\prod\frac{A_i^{c_i}}{c_i!}(-1)^{|T|+1}\),有:

\[f_{i,j,k}=f_{i-1,j,k}-\sum_{d=0}^{\min\{B_i-1,j\}}\frac{A_i^{d_i}}{d!}f_{i-1,j-A_i,k-d} \]

最后答案即为:

\[E(\max S)=\sum_{j=0}^{\sum A_i}\sum_{k=0}^{\sum (B_i-1)}\frac{k!\sum A_i}{j^{k+1}}f_{n,j,k} \]

这个 DP 的时间复杂度看似是 \(O(n^4)\) 的,但由于 \(\sum B_i\)\(O(n)\) 级的,所以事实上的复杂度为 \(O(n^3)\)

posted @ 2025-06-11 18:23  FugiPig  阅读(10)  评论(0)    收藏  举报