百度之星2020复赛-E Battle for Wosneth2

链接

一道简单的推式子题

首先,发现直接计算Ailce获胜的概率需要讨论最后一刀的情况,有点复杂。

正难则反,我们计算Bob获胜的概率

Bob获胜的条件显然是:

某一轮结束后,Alice血量为0,且Bob血量大于0

然后考虑一轮的情况,发现如果两人都没有命中的话,这轮显然是没用的,于是一轮只有如下3种情况(设\(tot=1-(1-p)(1-q)\)):

1.Bob扣了一滴血,概率为\(p1=\frac{p(1-q)}{tot}\)

2.Alice扣了一滴血,概率为\(p2=\frac{(1-p)q}{tot}\)

3.两人都扣了一滴血,概率为\(p3=\frac{p\cdot q}{tot}\)

先考虑\(n^2\)的写法。

我们枚举结束的轮数\(G\)和两人都扣一滴血的局数\(i\),那么有\(G-n\)轮Bob扣了一滴血,\(n-i\)轮Ailce扣了一滴血,\(i\)轮两人都扣了一滴血。

要注意的是Bob得在最后一轮受到一次伤害,因此我们先枚举最后一轮的情况。

推出答案

\[Ans=\sum_{G=n}^{m+n-1}\sum_{i=0}^{min\{m+n-G-1,n\}}p1^{G-n}\cdot p2^{n-i}\cdot p3^{i} \times \left( \binom{G-1}{i}\cdot \binom{G-1-i}{n-i-1}+\binom{G-1}{i-1}\cdot \binom{G-i}{n-i}\right) \]

考虑优化,我们把组合数拆开,得到:

\[Ans=\sum_{G=n}^{m+n-1}\sum_{i=0}^{min\{m+n-G-1,n\}}p1^{G-n}\cdot p2^{n-i}\cdot p3^{i} \times \left( \frac{(G-1)!}{i!(G-1-i)!}\cdot\frac{(G-1-i)!}{(n-i-1)!(G-n)!}+\frac{(G-1)!}{(i-1)!(G-i)!}\cdot \frac{(G-i)!}{(n-i)!(G-n)!} \right)\\ =\sum_{G=n}^{m+n-1}\sum_{i=0}^{min\{m+n-G-1,n\}}p1^{G-n}\cdot p2^{n-i}\cdot p3^{i} \times \left( \frac{(G-1)!}{i!(n-i-1)!(G-n)!}+\frac{(G-1)!}{(i-1)!(n-i)!(G-n)!} \right)\\ =\sum_{G=n}^{m+n-1}p1^{G-n}\cdot \frac{(G-1)!}{(G-n)!} \sum_{i=0}^{min\{m+n-G-1,n\}}p2^{n-i}\cdot p3^i\cdot\left(\frac{1}{i!(n-i-1)!}+\frac{1}{(i-1)!(n-i)!} \right) \\ \]

发现右边这部分有关\(i\)的可以前缀和预处理出来,因此直接\(O(n)\)递推就OK了。

posted @ 2020-08-12 21:13  TieT  阅读(176)  评论(0编辑  收藏  举报