AT_icpc2012autumn_b.Texas hold'em

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

德州扑克是标准扑克游戏之一,起源于美国德克萨斯州。 它使用一副标准的 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

每个数据集由三行组成。 第一行和第二行分别包含你和对手的底牌。 第三行包含翻牌,即前三张公共牌。 这些卡片由空格分隔。

每张卡片由两个字符表示。 第一个表示花色:(黑桃)S、(红心)H、(方块)D 或(梅花)C。 第二个表示等级:A、K、Q、J、T(10)或 9-2。

输入的末尾由带有 # 的线表示。 这不应该被处理。

输出格式

将概率打印成一行。 该数字可以包含小数点后任意位数, 但不应包含大于 10−610^{-6} 的绝对误差。

输入输出样例

  • 输入#1

    SA SK
    DA CA
    SQ SJ ST
    SA HA
    D2 C3
    H4 S5 DA
    HA D9
    H6 C9
    H3 H4 H5
    #

    输出#1

    1.00000000000000000000
    0.34444444444444444198
    0.63030303030303025391

说明/提示

null

输入解题思路,AI测评打分。不知道怎么写?

首页