单点时限: 1.0 sec
内存限制: 512 MB
李华爱上了Balatro(小丑牌),但是他现在算不过来牌的分数,请你帮帮他吧。
现给定$n$个回合,每个回合他都将出$m$张牌($m\in{1,2,3,4,5}$)。
每张牌有两个属性:花色(pattern)和点数(figure)。
花色有4种:红桃(Heart)、梅花(Club)、方块(Diamond)、黑桃(Spade)。
点数有13种(依顺序):2、3、4、5、6、7、8、9、10、J、Q、K、A,其中2、3、4、5、6、7、8、9、10筹码为点值对应的数字,J、Q、K筹码为10,A筹码为11。
当牌的点数按照以上顺序连续时或者恰好为A2345,被认为是点数连续的,例如56789和10JQKA是点数连续的,而246810和9JQKA不是点数连续的。
牌的描述由花色的首字母大写和点值组成,例如红桃J是HJ
,方块10是D10
。
按照以下顺序判断牌型(上面的牌型优先级更高):
英文名 | 中文名 | 判定条件和计入条件 | 例子 | 基础筹码 | 倍率 |
---|---|---|---|---|---|
Flush Five | 同花五条 | 五张牌同一花色、同一点数;全部计入 | HJ、HJ、HJ、HJ、HJ | 150 | 14 |
Flush House | 同花葫芦 | 五张牌同一花色,其中三张牌同一点数,剩余两张同一点数;全部计入 | HJ、HJ、HJ、HK、HK | 120 | 12 |
Five of a Kind | 五条 | 五张牌同一点数;全部计入 | HJ、DJ、SJ、DJ、SJ | 100 | 10 |
Straight Flush | 同花顺 | 五张牌同一花色、点数连续(包括A、2、3、4、5);全部计入 | H10、HJ、HQ、HK、HA | 100 | 8 |
Four of a Kind | 四条 | 存在四张牌同一点数;计入这四张 | HJ、HJ、HJ、HJ、S10 | 60 | 7 |
Full House | 葫芦 | 三张牌同一点数,另外两张牌同一点数;全部计入 | HJ、HJ、HJ、SA、SA | 40 | 4 |
Flush | 同花 | 五张牌同一花色;全部计入 | HJ、HQ、H2、H4、H5 | 35 | 4 |
Straight | 顺子 | 五张牌点数连续;全部计入 | HA、S2、H3、S4、D5 | 30 | 4 |
Three of a Kind | 三条 | 存在三张牌同一点数;计入这三张 | H2、H2、H2、DJ、CK | 30 | 3 |
Two Pair | 两对 | 存在两对同一点数的牌;计入这两对(四张) | H2、H2、CK、CK、DJ | 20 | 2 |
Pair | 对子 | 存在一对同一点数的牌;计入这一对(两张) | H2、H2、CK、DJ、SQ | 10 | 2 |
High Card | 高牌 | 其它情况;计入筹码最高的牌 | H2、D4、S6、C8、H10 | 5 | 1 |
该轮出牌的总分数为$(\mathrm{基础筹码}+\mathrm{计入牌的筹码总和})*倍率$,其中基础筹码
和倍率
查表获得,计入牌
的规则表中亦给出,请特别注意四条、三条、两对、对子和高牌的判定方式。
第一行包含一个整数, $n(1 \leq n \leq 2 \times 10^5)$ 。
接下来 $n$ 行,每行包含一个整数和一个字符串,$m, s(m \in{1, 2, 3, 4, 5})$ 。
输出 $n$ 行,每行包含一个整数,表示分数。
3 5 D5H6H7H8H9 5 D7S7HJCJS2 2 DAC10
260 108 16
D5H6H7H8H9
:
我们查表知牌型为顺子,基础筹码为30,倍率为4,所有牌都计入,结果为$(30+5+6+7+8+9) \times 4=65 \times 4=260$。
D7S7HJCJS2
:
我们查表知牌型为两对,基础筹码为20,倍率为2,仅两对的牌可计入,结果为$(20+7+7+10+10) \times 2=54 \times 2=108$。
DAC10
:
我们查表知牌型为高牌,基础筹码为5,倍率为1,仅最高筹码的牌可计入,结果为$(5+11) \times 1=16 \times 1=16$。