P17072 [ICPC 2017 Shenyang R] Legends of the Three Kingdoms
题目描述
在《三国杀传奇》游戏中,共有 4 名玩家,分别称为主公、忠臣、反贼和内奸。初始时他们分别拥有 $h_1, h_2, h_3, h_4$ 点体力值。体力值为正的玩家视为存活,体力值为零的玩家视为阵亡。
游戏在每一轮中由玩家按如下顺序依次行动:主公最先行动,随后是反贼,接着是忠臣,最后是内奸。在一名玩家的回合中,若其存活,则必须攻击一名其他玩家,被攻击的玩家体力值减少 1。注意,阵亡的玩家不能攻击其他玩家,且不允许自残。
当以下任一事件发生时,游戏立即结束。
* 反贼和内奸均已阵亡:无论忠臣是否存活,主公和忠臣获胜。
* 主公阵亡:若此时内奸存活且其余所有玩家均已阵亡,则内奸获胜;否则反贼获胜,无论反贼自身是否存活。
各玩家均按照如下公开的策略进行决策:
* 主公和忠臣永远不会互相攻击。
* 攻击所选的玩家后,使己方获胜的概率最大化。
* 若存在多个可供选择的玩家,使得获胜概率相同且达到最大,则从这些玩家中等概率随机选择目标。
你的任务是计算每位玩家(阵营)的获胜概率。
输入格式
第一行是一个整数,表示测试用例的数量,最多不超过 $10000$。对于每个测试用例,有一行包含 $4$ 个整数 $h_1, h_2, h_3, h_4$($0 < h_1 < 40$,$0 \le h_2 < 40$,$0 \le h_3 < 40$,$0 \le h_4 < 40$)。
输出格式
对于每个测试用例,输出一行,包含 $3$ 个获胜概率,精确到小数点后 $6$ 位。其中第一个为主公和忠臣阵营的获胜概率,第二个为反贼阵营的获胜概率,最后一个为内奸的获胜概率。
说明/提示
翻译由 DeepSeek V3.2 完成