AT_icpc2012autumn_b Texas hold 'em
题目描述
[problemUrl]: https://atcoder.jp/contests/jag2012autumn/tasks/icpc2012autumn_b
德州扑克是标准扑克游戏之一,起源于美国德克萨斯州。 它使用一副标准的 52 张牌进行游戏,其中有 4 种花色(黑桃、红心、方块和梅花)和 13 种点数(A、K、Q、J 和 10-2),没有大小王。
撇开投注不谈,游戏如下所述。
开始时,每个玩家都会收到两张面朝下的牌。 这些牌被称为底牌或口袋牌,直到摊牌才需要揭晓。 然后庄家发三张牌面朝上作为公共牌,即所有玩家共享的牌。 这三张牌称为翻牌。 翻牌之后是另一张称为转牌的公共牌,然后是另一张称为河牌的公共牌。
河牌结束后,游戏继续摊牌。 此时所有玩家都会展示他们的底牌。 然后每个玩家从七张牌中选择五张,即他们的两张底牌和五张公共牌,组成一手牌。 形成最强手牌的玩家赢得游戏。 有十种可能的手牌,从最强到最弱列出:
- 皇家同花顺:A、K、Q、J 和同花色 10。这是同花顺的特例。
- 同花顺:五张牌按顺序排列(例如 7、6、5、4 和 3)且花色相同。
- 四条:四张相同点数的牌。
- 葫芦:三张相同点数的牌,加上一对另一个点数的牌。
- 同花:五张相同花色的牌,但不是按顺序排列的。
- 顺子:五张牌按顺序排列,但花色不同。
- 三条牌:只有三张相同点数的牌。
- 两对:两张相同点数的牌,以及另外两张相同点数的牌。
- 一对:只是一对相同点数的牌(两张牌)。
- 高牌:任何其他手牌。
出于序列的目的,J、Q 和 K 分别被视为 11、12 和 13。 A 可以看作是 K 之上的下一个或 2 之下的等级,因此 A-K-Q-J-10 和 5-4-3-2-A 都是可能的(但不是 3-2-A-K-Q 或类似)。
如果多个玩家拥有相同类型的手牌,则通过比较牌的等级来打破平局。 基本思想是首先比较那些形成的组(对子、三元组或四元组),然后从排名最高的牌到排名最低的牌一张一张地比较,直到平局被打破。 更具体地说:
皇家同花顺:(平局未断)
同花顺:比较排名最高的牌。
四条:比较四张牌,然后比较剩下的一张。
葫芦:比较三张牌,然后比较对子。
同花:一张一张地比较所有牌。
顺子:比较排名最高的牌。
三条牌:比较三张牌,然后比较剩下的两张牌。
两对:比较排名较高的对子,然后比较排名较低的对子,然后比较最后一个。
一对:比较对子,然后比较剩下的三对。
高牌:一张一张地比较所有牌。
等级顺序为A、K、Q、J、10、9、...、2,从高到低, 除了顺子中 2 旁边的 A 被视为低于 2。 请注意,在特殊情况下,联系仍然存在。 另请注意,在决胜局中根本不考虑花色。
以下是一些比较示例(请注意,这些仅用于解释目的,某些组合不能在德州扑克中发生):
J-J-J-6-3 和 K-K-Q-Q-8。
前者击败后者,因为三条比两对更强。
J-J-J-6-3 和 K-Q-8-8-8。
由于两者都是三条,因此三元组被认为是第一位的,在本例中是 J 和 8。 J 较高,因此前者是一手较强的牌。 剩下的牌,6-3 和 K-Q,不考虑,因为平局已经被打破。
Q-J-8-6-3 和 Q-J-8-5-3。
两者都是高牌,假设手牌不是单花色(即同花)。 排名最高的三张牌Q-J-8是一样的,所以比较第四高的牌。 前者更强,因为 6 高于 5。
9-9-Q-7-2 和 9-9-J-8-5。
两者都是一对,对的等级相同(9)。 因此,将剩余的牌 Q-7-2 和 J-8-5 从高到低进行比较, 前者获胜,因为 Q 高于 J。
现在假设您正在与一个对手玩德州扑克游戏,底牌和翻牌已经发完。 你有令人惊讶的心灵感应,能够知道对手拥有的牌。 然而,你的能力并不像你预测的转弯和河牌那么强。
你的任务是编写一个程序来计算你赢得比赛的概率, 假设回合和河牌是从剩余的牌中均匀随机选择的。 你和对手总是必须选择尽可能强的牌。平局应包含在计算中,即应计为损失。
输入格式
输入由多个数据集组成,每个数据集具有以下格式:
```
YourCard 1,YourCard 2
OpponentCard 1,OpponentCard 2
CommunityCard 1,CommunityCard 2,CommunityCard 3
```
每个数据集由三行组成。 第一行和第二行分别包含你和对手的底牌。 第三行包含翻牌,即前三张公共牌。 这些卡片由空格分隔。
每张卡片由两个字符表示。 第一个表示花色:(黑桃)、(红心)、(方块)或(梅花)。 第二个表示等级:、、、、(10)或-。SHDCAKQJT92
输入的末尾由带有 `#` 的线表示。 这不应该被处理。
输出格式
将概率打印成一行。 该数字可以包含小数点后任意位数, 但不应包含大于 $10^{-6}$ 的绝对误差。