【学习笔记】[AGC038E] Gachapon
学好数学
首先 min-max \text{min-max} min-max容斥: E ( max ( S ) ) = ∑ T ⊆ S ( − 1 ) ∣ T ∣ + 1 E ( min ( T ) ) E(\max(S))=\sum_{T\subseteq S}(-1)^{|T|+1}E(\min(T)) E(max(S))=∑T⊆S(−1)∣T∣+1E(min(T))
考虑枚举集合 T T T,假设每次得到的都是 T T T里面的数,其期望可以转化为 K K K轮后仍没有卡牌被抽到的概率之和。注意到每一轮后都会得到一张卡牌,因此是有限项求和。注意到 ∑ A i \sum A_i ∑Ai比较小,可以考虑暴力枚举轮数来计算。
具体的,答案是 ∏ i ∈ T ( A i ∑ A i ) c i K ! c 1 ! c 2 ! . . . c ∣ T ∣ ! \prod_{i\in T}(\frac{A_i}{\sum A_i})^{c_i}\frac{K!}{c_1!c_2!...c_{|T|}!} i∈T∏(∑AiAi)cic1!c2!...c∣T∣!K!
其中 ∑ c i = K , c i < b i \sum c_i=K,c_i<b_i ∑ci=K,ci<bi。
不难将式子写成 K ! ( 1 ∑ A i ) K ∏ i ∈ T A i c i c i ! K!(\frac{1}{\sum A_i})^K\prod_{i\in T}\frac{A_i^{c_i}}{c_i!} K!(∑Ai1)Ki∈T∏ci!Aici
设 f j , k f_{j,k} fj,k表示 ∑ A i = j \sum A_i=j ∑Ai=j, ∑ c i = k \sum c_i=k ∑ci=k时贡献之和。每次考虑新加入一个元素进去,这个元素的贡献是 A i c i c i ! \frac{A_i^{c_i}}{c_i!} ci!Aici,写成卷积的形式 f j , k = ∑ f j − A i , k − c i A i c i c i ! f_{j,k}=\sum f_{j-A_i,k-c_i}\frac{A_i^{c_i}}{c_i!} fj,k=∑fj−Ai,k−cici!Aici,不难暴力卷积做到 O ( ∑ A i ( ∑ B i ) 2 ) O(\sum A_i(\sum B_i)^2) O(∑Ai(∑Bi)2)。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530042.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2022-01-29 树上斜率优化