Loading

AT_agc038_e [AGC038E] Gachapon

只是需要写代码了。

考察 min-max 容斥,我们有:

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

考虑给定 \(S\) 如何快速求解 \(E_{min}(S)\),也就是期望 \(S\) 中至少有一个达到上限的次数,拆成概率就是:

  • 对于一个次数 \(i\),求出前 \(i - 1\) 操作没有一个数达到上界,第 \(i\) 次操作恰好达到上限的概率,再用其乘以 \(i\)

进行经典操作,转化成后缀和(实质上是 PGF 的求导积分),期望的值就是:

  • 对于一个次数 \(i\),求出至少 \(i\) 次操作才达到上界的概率总和。

取补集,那么我们要求的就是:

  • 对于一个次数 \(i\),求出前 \(i - 1\) 次操作都没有数达到上界的概率总和。

由于加一不一定加在 \(S\) 中,不妨将其加权 \(\frac{sum_S}{s}\) 乘在外面,然后只需要考虑每次随机都在 \(S\) 中,所以可以列式求得概率是一个有关于各项式子都独立的乘积,可以先枚举总和,然后使用 DP 背包一样的手法求出,注意将容斥系数要带着算出来。

posted @ 2026-04-07 11:49  Alexande  阅读(4)  评论(0)    收藏  举报