CF175D Plane of Tanks: Duel
题目描述
Vasya 在玩 Plane of Tanks。
坦克有以下属性:
- 生命值的数量;
- 两次射击之间的间隔(即炮弹充能所需的时间);
- 炮弹无法击穿敌方坦克装甲的概率;
- 对敌方坦克的伤害。
炮弹伤害由一个区间 $[l, r]$ 描述,其中 $l$ 与 $r$ 为整数。潜在的炮弹伤害 $x$ 以相等的概率,从区间 $[l, r]$ 的所有整数中选取。如果这一枪击穿了敌方坦克装甲,则敌方将失去 $x$ 点生命值。如果生命值变为非正,则该坦克被视为被摧毁。
炮弹有可能无法击穿坦克的装甲。在这种情况下生命值保持不变。装甲未被击穿的概率被视为射击坦克的属性,与玩家的行为无关。
胜利近在咫尺,只剩下一个敌方坦克。Vasya 已经准备好迎接战斗——善与恶之间的最后一战不可避免!两人互相发现且在同一时刻开火……最后的战斗开始了!请你帮助 Vasya 计算他摧毁敌方坦克获得胜利的概率。
如果两辆坦克在一次同时开火之后都被摧毁,则 Vasya 也视为获胜。你可以假设每个玩家只要炮弹充能完成就会立即开火,每辆坦克拥有无限的弹药。
输入格式
第一行包含五个用空格分隔的整数,描述 Vasya 的坦克状态:生命值 $hp$ $(10 \le hp \le 200)$,两次射击之间的间隔 $dt$ $(1 \le dt \le 30)$,炮弹伤害区间 $l$ 和 $r$ $(10 \le l \le r \le 100)$,无法击穿敌方坦克装甲的概率 $p$ $(0 \le p \le 100)$(百分制)。
第二行为 Vasya 的敌方坦克,格式与上面相同。
输出格式
输出一个数字,表示 Vasya 获胜的概率,绝对误差或相对误差不超过 $10^{-4}$。
说明/提示
在第一个样例中,第二枪后两辆坦克同时被摧毁。摧毁敌方坦克的概率为 $1$。
在第二个样例中,Vasya 的敌人会在 Vasya 之前完成第二次射击,但没有时间进行第三次射击。要摧毁 Vasya 的坦克,需要两发伤害都为 50 的炮弹。其概率为:
 = 。否则,Vasya 胜出。
在第三个样例中,Vasya 的敌人会发射三次炮弹,装甲被击穿的概率为 $0.5$。要摧毁 Vasya 的坦克,至少需要有 $3$ 发中的 $2$ 发击穿其装甲。发生这种情况的概率为 $0.5$。
由 ChatGPT 5 翻译