P3239 [HNOI2015] 亚瑟王
P3239 [HNOI2015] 亚瑟王 题解
洛谷的题解说的稀里糊涂的。
题意简述:给一个卡牌序列,你要玩 \(m\) 轮游戏。每轮遍历一次数组,找到一张没有被使用的卡牌以 \(p(i)\) 的概率打出造成 \(d(i)\) 的伤害。
求造成伤害的期望。
数据范围:\(1\le n\le 220,0\le m\le 132\) 。
Solution
一眼概率期望 dp,考虑怎么推式子。
由期望的性质,考虑将求期望转为求每张牌被打出的概率。
直接设 \(F(i)\) 为第 \(i\) 张牌打出的概率,容易想到,有:
考虑求出 \(F(i)\) ,我们发现第 2 张到第 \(n\) 张卡牌求概率被前面的东西限制,即会跳过某些轮。
我们先写出第一张卡牌的概率:
莫名像 2024新高考II卷数学 18 题。
我们考虑第 \(i\) 张卡牌的限制,假设前面有 \(j\) 轮被跳过(卡牌被使用导致结束回合)。
我们写成一个求和式的形式,设 \(f(i,j)\) 为前面 \(i\) 张卡牌,恰好有 \(j\) 个回合被跳过的概率。有:
这个式子的意思是其中有 \(j\) 个回合被跳过,剩下有 \(m-j\) 个回合,美国回合都有可能打这出张卡牌。
这下我们只需求出 \(f(i,j)\) 的递推式即可。
我们分两种情况:
-
第 \(i\) 张打出,即有 \(m-j+1\) 个回合有概率打出:\(f(i,j)=f(i-1,j-1)\cdot (1-(1-p(i))^{m-j+1})\)
-
第 \(i\) 张被雪藏,即剩下 \(m-j\) 个回合都没被打出:\(f(i,j)=f(i-1,j)\cdot (1-p(i))^{m-j}\)
于是我们先求 \(f\) 再求 \(F\) ,最后统计答案即可。时间复杂度为 \(O(Tnm)\) 。
可能根据写法问题需要预处理 \((1-p(i))^k\) 。

浙公网安备 33010602011771号