A2483 | 梭哈游戏
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小 Y 和小 Z 最近迷上了一种叫梭哈的扑克游戏。梭哈又称沙蟹,是英文 Show Hand 的音译,是一种使用黑桃、红心、梅花、方片的 A 到 K 共 $52$ 张牌(没有大小王)来进行的扑克牌游戏。
和其他扑克游戏一样,梭哈的目的是得到最大的牌型并赢得牌局:每名玩家首先需要下基本的注额,之后将获得一张底牌,这张牌只有自己知道。普通梭哈游戏的规则是,在发完底牌后的第一轮时,每个玩家都将得到一张明牌(明牌是摆在台面上的,所有人都能看见),拥有最大明牌的玩家首先发言,他可以下注、不下注(让牌)或盖牌(放弃)也可以全压(梭哈),其他玩家可以跟注(有玩家全压时必须全压)、加注或盖牌(放弃),放弃的玩家将无法继续游戏,并且之
前押的筹码无法取回。而全压之后将直接把每个人的手牌补充至 $5$ 张进行最后的判定;第二圈、第三圈和第四圈的进程与第一圈是类似的。最后,每位玩家要比牌型的大小以确定赢家。牌最大的玩家赢得牌局。
所有五张牌的组合,按以下秩序, 由大至小 排行分为不同牌型:
1、同花顺(
2、四条(
3、满堂红(
4、同花(
5、顺子(
6、三条(
7、两对(
8、一对(
9、无对(
若牌型一样则 利用 点数 和花色决定胜负 。(点数 优先)
点数 的顺序( 从 大至小) 为:$A>K>Q>J>10>9>8>7>6>5>4>3>2$。(注:当 $5$ 张手牌是 $5, 4, 3, 2, A$ 的时候,$A$ 可以看作最小的牌,此时的牌型仍然为顺子,是顺子里面最小的一个)。
花色的顺序(大至小) 为:黑桃(♠)$>$红心(♥)$>$梅花(♣)$>$方块(♦)。
举例说明:
1、$Q♦ J♦ 10♦ 9♦ 8♦ > 8♣ 8♥ 8♠ K♥ K♠$ (前者牌型为同花顺,比后者大);
2、$9♣ 9♦ 9♠ Q♥ Q♠ > 8♣ 8♦ 8♠ K♥ K♠$ (两者牌型均为满堂红,比较牌型中三张同一点数的牌 $9$ 比 $8$ 大);
3、$A♣ A♦ 8♥ 8♠ Q♠ > A♠ A♥ 7♥ 7♠ K♠$ (两者牌型均为两对,且最大的对子相同,此时比较次大的对子,$8$ 比 $7$ 大);
4、$A♠ Q♠ J♥ 9♥ 8♥ > A♦ Q♦ J♠ 9♣ 8♣$ (两者牌型均为无对,所有数码均相同,此时比较最大牌的花色,$A♠$ > $A♦$)。
5、$4♠ 4♥ A♦ Q♦ 5♦ > 4♣ 4♦ A♠ Q♠ 5♠$ (两者牌型均为一对,所有数码均相同,此时对 4 为牌型里最大的部分,因此比较 $4♠ > 4♣$)
在小 Y 和小 Z 玩梭哈的过程中,小 Y 总希望能够实时了解目前的形势,即根据自己手上的牌算出自己的胜率。但是他的编程能力有限,你能帮他完成这个任务么?
和其他扑克游戏一样,梭哈的目的是得到最大的牌型并赢得牌局:每名玩家首先需要下基本的注额,之后将获得一张底牌,这张牌只有自己知道。普通梭哈游戏的规则是,在发完底牌后的第一轮时,每个玩家都将得到一张明牌(明牌是摆在台面上的,所有人都能看见),拥有最大明牌的玩家首先发言,他可以下注、不下注(让牌)或盖牌(放弃)也可以全压(梭哈),其他玩家可以跟注(有玩家全压时必须全压)、加注或盖牌(放弃),放弃的玩家将无法继续游戏,并且之
前押的筹码无法取回。而全压之后将直接把每个人的手牌补充至 $5$ 张进行最后的判定;第二圈、第三圈和第四圈的进程与第一圈是类似的。最后,每位玩家要比牌型的大小以确定赢家。牌最大的玩家赢得牌局。
所有五张牌的组合,按以下秩序, 由大至小 排行分为不同牌型:
1、同花顺(
Straight Flush):同一花色,顺序的牌。 例: $Q♦ J♦ 10♦ 9♦ 8♦$;2、四条(
Four of a Kind):有四张同一点数的牌。 例: $10♣ 10♦ 10♥ 10♠ 9♥$;3、满堂红(
Full House):三张同一点数的牌,加一对其他点数的牌。 例: $8♣ 8♦ 8♠ K♥ K♠$;4、同花(
Flush):五张同一花色的牌。 例: $A♠ K♠ 10♠ 9♠ 8♠$;5、顺子(
Straight):五张顺连的牌。 例: $K♦ Q♥ J♠ 10♦ 9♦$;6、三条(
Three of a kind):有三张同一点数的牌。 例: $J♣ J♥ J♠ K♦ 9♠$;7、两对(
Two Pairs):两张相同点数的牌,加另外两张相同点数的牌。 例: $A♣ A♦ 8♥ 8♠ Q♠$;8、一对(
One Pair):两张相同点数的牌。 例: $9♥ 9♠ A♣ J♠ 8♥$;9、无对(
Zilch):不能排成以上组合的牌,以点数决定大小。例: $A♦ Q♦ J♠ 9♣ 8♣$。若牌型一样则 利用 点数 和花色决定胜负 。(点数 优先)
点数 的顺序( 从 大至小) 为:$A>K>Q>J>10>9>8>7>6>5>4>3>2$。(注:当 $5$ 张手牌是 $5, 4, 3, 2, A$ 的时候,$A$ 可以看作最小的牌,此时的牌型仍然为顺子,是顺子里面最小的一个)。
花色的顺序(大至小) 为:黑桃(♠)$>$红心(♥)$>$梅花(♣)$>$方块(♦)。
举例说明:
1、$Q♦ J♦ 10♦ 9♦ 8♦ > 8♣ 8♥ 8♠ K♥ K♠$ (前者牌型为同花顺,比后者大);
2、$9♣ 9♦ 9♠ Q♥ Q♠ > 8♣ 8♦ 8♠ K♥ K♠$ (两者牌型均为满堂红,比较牌型中三张同一点数的牌 $9$ 比 $8$ 大);
3、$A♣ A♦ 8♥ 8♠ Q♠ > A♠ A♥ 7♥ 7♠ K♠$ (两者牌型均为两对,且最大的对子相同,此时比较次大的对子,$8$ 比 $7$ 大);
4、$A♠ Q♠ J♥ 9♥ 8♥ > A♦ Q♦ J♠ 9♣ 8♣$ (两者牌型均为无对,所有数码均相同,此时比较最大牌的花色,$A♠$ > $A♦$)。
5、$4♠ 4♥ A♦ Q♦ 5♦ > 4♣ 4♦ A♠ Q♠ 5♠$ (两者牌型均为一对,所有数码均相同,此时对 4 为牌型里最大的部分,因此比较 $4♠ > 4♣$)
在小 Y 和小 Z 玩梭哈的过程中,小 Y 总希望能够实时了解目前的形势,即根据自己手上的牌算出自己的胜率。但是他的编程能力有限,你能帮他完成这个任务么?
输入格式
第一行包含 $1$ 个正整数 $N$,表示小 Y 自己手上牌的数量。
接下来 $N$ 行每行用两个整数描述一张小 Y 手上的牌:第一个数表示牌的数码($1$ 表示 $A$,$13$ 表示 $K$,$12$ 表示 $Q$,$11$ 表示 $J$),第二个数表示牌的花色($1$ 表示黑桃,$2$ 表示红心,$3$ 表示梅花,$4$ 表示方块)。
接下来 $N – 1$ 行每行用两个整数描述一张小 Z 手上的明牌:第一个数表示牌的数码($1$ 表示 $A$,$13$ 表示 $K$,$12$ 表示 $Q$,$11$ 表示 $J$),第二个数表示牌的花色($1$ 表示黑桃,$2$ 表示红心,$3$ 表示梅花,$4$ 表示方块)。
接下来 $N$ 行每行用两个整数描述一张小 Y 手上的牌:第一个数表示牌的数码($1$ 表示 $A$,$13$ 表示 $K$,$12$ 表示 $Q$,$11$ 表示 $J$),第二个数表示牌的花色($1$ 表示黑桃,$2$ 表示红心,$3$ 表示梅花,$4$ 表示方块)。
接下来 $N – 1$ 行每行用两个整数描述一张小 Z 手上的明牌:第一个数表示牌的数码($1$ 表示 $A$,$13$ 表示 $K$,$12$ 表示 $Q$,$11$ 表示 $J$),第二个数表示牌的花色($1$ 表示黑桃,$2$ 表示红心,$3$ 表示梅花,$4$ 表示方块)。
输出格式
输出仅包含一行,格式为
A/B 形式。$A$, $B$ 为两个互质的自然数,A/B 表示了小 Y 当前局面下的获胜可能性。特别的,若 $A$ 为 $0$,则应输出 0/1。输入输出样例
输入 #1
5 2 1 2 2 2 3 2 4 3 1 1 1 1 2 1 3 3 2
输出 #1
42/43
【样例说明】
小 Y 手上牌的型是 $4$ 条,小 Z 若底牌是方块 $A$ 则也能构成 $4$ 条,并通过数码大获胜 。其他情况下都是小 Y 获胜。
【数据规模和约定】
对于 $10\%$ 的数据,$N = 5$;
对于 $30\%$ 的数据,$3 \leq N \leq 5$;
对于 $100\%$ 的数据,$1 \leq N \leq 5$。
小 Y 手上牌的型是 $4$ 条,小 Z 若底牌是方块 $A$ 则也能构成 $4$ 条,并通过数码大获胜 。其他情况下都是小 Y 获胜。
【数据规模和约定】
对于 $10\%$ 的数据,$N = 5$;
对于 $30\%$ 的数据,$3 \leq N \leq 5$;
对于 $100\%$ 的数据,$1 \leq N \leq 5$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted