#P17072. [ICPC 2017 Shenyang R] Legends of the Three Kingdoms

[ICPC 2017 Shenyang R] Legends of the Three Kingdoms

题目描述

在《三国杀传奇》游戏中,共有 4 名玩家,分别称为主公、忠臣、反贼和内奸。初始时他们分别拥有 h1,h2,h3,h4h_1, h_2, h_3, h_4 点体力值。体力值为正的玩家视为存活,体力值为零的玩家视为阵亡。

游戏在每一轮中由玩家按如下顺序依次行动:主公最先行动,随后是反贼,接着是忠臣,最后是内奸。在一名玩家的回合中,若其存活,则必须攻击一名其他玩家,被攻击的玩家体力值减少 1。注意,阵亡的玩家不能攻击其他玩家,且不允许自残。

当以下任一事件发生时,游戏立即结束。

  • 反贼和内奸均已阵亡:无论忠臣是否存活,主公和忠臣获胜。
  • 主公阵亡:若此时内奸存活且其余所有玩家均已阵亡,则内奸获胜;否则反贼获胜,无论反贼自身是否存活。

各玩家均按照如下公开的策略进行决策:

  • 主公和忠臣永远不会互相攻击。
  • 攻击所选的玩家后,使己方获胜的概率最大化。
  • 若存在多个可供选择的玩家,使得获胜概率相同且达到最大,则从这些玩家中等概率随机选择目标。

你的任务是计算每位玩家(阵营)的获胜概率。

输入格式

第一行是一个整数,表示测试用例的数量,最多不超过 1000010000。对于每个测试用例,有一行包含 44 个整数 h1,h2,h3,h4h_1, h_2, h_3, h_40<h1<400 < h_1 < 400h2<400 \le h_2 < 400h3<400 \le h_3 < 400h4<400 \le h_4 < 40)。

输出格式

对于每个测试用例,输出一行,包含 33 个获胜概率,精确到小数点后 66 位。其中第一个为主公和忠臣阵营的获胜概率,第二个为反贼阵营的获胜概率,最后一个为内奸的获胜概率。

4
1 1 1 1
1 0 1 1
1 1 1 2
2 1 2 6
1.000000 0.000000 0.000000
0.000000 0.500000 0.500000
0.500000 0.500000 0.000000
0.250000 0.500000 0.250000

提示

翻译由 DeepSeek V3.2 完成