2021GDUFS新手赛F-Reinhart的德州扑克 题解
https://www.luogu.com.cn/problem/U188446
题面
题目背景
德州扑克是目前世界上最流行的扑克游戏,全世界有众多相关的比赛,例如是 WSOP,WPT,EPT等,也让这款游戏的玩法变得层出不穷,丰富多变。
不要被简单的游戏规则而误导,复杂多变的比赛状况,让这款游戏在高水平的竞技中会变得非常复杂,这也让人们为德州扑克给出了这样一句评价“用一刻就能学会,但要用一生才能掌握”。
题目描述
现在我们并不在乎游戏规则是什么,因为Reinhart是一个德州扑克高手,他对于德州扑克的规则烂熟于心,不过他每次都记不得牌型的大小关系,他知道你是一个编程高手,所以他想让你帮他写一个程序:输入五张牌的大小和花色,输出这五张牌能组成的最大牌型.你能帮帮他吗?
为了降低你的编程难度,我们规定:
- 输入的牌都是来源于同一副扑克牌.
- 输入的牌的点数都是非递减的.
- 所有花色没有大小之分.
下面给出各牌型,(从大到小)
- 皇家同花顺(ROYAL FLUSH):五张顺连的牌(点数连续单调递增),且最大的一张牌是A(Ace),并且五张牌的花色相同.
- 同花顺(STRAIGHT FLUSH):五张顺连的牌(点数连续单调递增),不规定最大的一张牌是A(Ace),并且五张牌的花色相同.
- 四条(FOUR OF A KIND):至少四张牌的点数相同.
- 葫芦(FULL HOUSE):至少三张牌的点数相同,并且除此之外还有两张牌的点数相同.
- 同花(FLUSH):五张牌的花色都相同.
- 顺子(STRAIGHT):五张顺连的牌(点数连续单调递增),不要求五张牌的花色相同.
- 特别注意:由于Reinhart是个谨慎的人,所以比三条(THREE OF A KIND)(包括三条)小的牌型Reinhart不在乎他们的大小关系,你只需要告诉Reinhart弃牌就行
输入格式
输入两行,每行五个数字,第一行的第$i$个字符表示第$i$张扑克的点数,
第二行的第$i$个数字表示第$i$张扑克花色.(保证输入的牌的点数是非递减的)
点数和对应输入的数字:
- 2 - 10 对应 2 - 10
- J(Jack) 对应 11
- (Queen) 对应 12
- K(King) 对应 13
- A(Ace) 对应 14
花色和对应输入的数字:
- 黑桃(Spades) 对应 1
- 方片(Diamonds) 对应 2
- 红桃(Hearts) 对应 3
- 梅花(Clubs) 对应 4
输出格式
输出这五张牌能组成的最大牌型.
- 如果最大是皇家同花顺输出”ROYAL FLUSH”
- 如果最大是同花顺输出”STRAIGHT FLUSH”
- 如果最大是四条输出”FOUR OF A KIND”
- 如果最大是葫芦输出”FULL HOUSE”
- 如果最大是同花输出”FLUSH”
- 如果最大是顺子输出”STRAIGHT”
- 如果最大的牌型小于等于三条输出”FOLD”,劝Reinhart弃牌.
- 输出不包括引号
题解
- 按照题意模拟即可,虽然题目规定输入一定是非递减输入,但要仍然要注意一些顺序问题,具体见代码。
1 |
|