码迷,mamicode.com
首页 > 其他好文 > 详细

[PKUWC2018]猎人杀

时间:2020-05-06 22:03:45      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:ali   end   sub   容斥   方式   begin   strong   spl   活着   

sol

  一道生成函数题,要结合容斥。

  首先有个技巧:设猎人\(i\)还活着,他被开枪的概率为剩下猎人中按权值分配的概率,这样很麻烦,还需要知道剩余哪些人,其实等价于人都在,但被开枪到死人时要重新开枪的概率。因为对于活着的猎人,被开枪仍然概率不变。这点很重要,因为仍然可以用\(p_i=\dfrac{w_i}{tot}\)表示概率,其中\(tot=\sum\limits_j w_j\)

  直接算出来\(1\)号猎人最后挂掉的概率很麻烦,考虑容斥。设集合\(S\subset\{2,3,\dots,n\}\)表示猎人编号的集合,则可以容斥得到

\[ans=1+\sum_{S}(-1)^{\mid S\mid}Pr(S) \]

  \(Pr(S)\)表示挂在\(1\)号猎人后面至少为\(S\)中的猎人的概率。现在来分析这个东西,那么显然前面若干次一定是\(\overline S\)中的人,除了\(1\)号被淘汰时立刻停止,否则继续。显然是一个无穷级数的求和。记\(tot=\sum w_i\)\(sum=\sum_{i\in S}w_i\),那么有

\[\begin{aligned} Pr(S)&=\sum_{i=0}^\infty\left(\dfrac{tot-sum-w_1}{tot}\right)^i\times \dfrac{w_1}{tot}\&=\dfrac{1}{1-\dfrac{tot-sum-w_i}{tot}}\times\dfrac{w_1}{tot}\&=\dfrac{w_1}{sum+w_1} \end{aligned} \]

  那么上面的式子就变成

\[ans=1+\sum_S(-1)^{\mid S\mid}\dfrac{w_1}{tot+w_1} \]

  根据数据范围提示,转变枚举方式,考虑枚举\(tot\),这个与\(S\)有关,记\(f(i)=\sum_{tot=i}(-1)^{\mid S\mid}\),那么式子就变成了

\[ans=1+\sum_{i}f(i)\dfrac{w_1}{i+w_1} \]

  问题就变成了求解\(f\)。使用生成函数构造出\(f\),令\(F=\prod(1-x^{w_i})\),则\(f(i)=[x^i]F(x)\)。至此问题得解。

[PKUWC2018]猎人杀

标签:ali   end   sub   容斥   方式   begin   strong   spl   活着   

原文地址:https://www.cnblogs.com/ac-evil/p/12838929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!