#bzoj2804. showhand
showhand
题目描述
原件1:tmp1.png
小和小最近迷上了一种叫梭哈的扑克游戏。梭哈又称沙蟹,是英文的音译,是一种使用黑桃、红心、梅花、方片的到共张牌(没有大小王)来进行的扑克牌游戏。
和其他扑克游戏一样,梭哈的目的是得到最大的牌型并赢得牌局:每名玩家首先需要下基本的注额,之后将获得一张底牌,这张牌只有自己知道。普通梭哈游戏的规则是,在发完底牌后的第一轮时,每个玩家都将得到一张明牌(明牌是摆在台面上的,所有人都能看见),拥有最大明牌的玩家首先发言,他可以下注、不下注(让牌)或盖牌(放弃)也可以全压(梭哈),其他玩家可以跟注(有玩家全压时必须全压)、加注或盖牌(放弃),放弃的玩家将无法继续游戏,并且之前押的筹码无法取回。而全压之后将直接把每个人的手牌补充至5张进行最后的判定:第二圈、第三圈和第四圈的进程与第一圈是类似的。最后,每位玩家要比牌型的大小以确定赢家。牌最大的玩家赢得牌局。
所有五张牌的组合,按以下秩序,由大至小排行分为不同牌型:
- 同花顺():同一花色,顺序的牌。例:$\text{Q} \diamondsuit \text J\diamondsuit 10\diamondsuit 9\diamondsuit 8$;
- 四条():有四张同一点数的牌。例:$10\clubsuit 10\diamondsuit 10\heartsuit 10\spadesuit 9\heartsuit$;
- 满堂红():三张同一点数的牌,加一对其他点数的牌。例:$8\clubsuit 8\diamondsuit 8\spadesuit \text K\heartsuit \text K\spadesuit$;
- 同花():五张同一花色的牌。例:$\text A\spadesuit \text K\spadesuit 10\spadesuit 9\spadesuit 8\spadesuit$;
- 顺子():五张顺连的牌。例:$\text K\diamondsuit \text Q\heartsuit \text J\spadesuit 10\diamondsuit 9\diamondsuit$;
- 三条():有三张同一点数的牌。例:$\text J\spadesuit \text J\heartsuit \text J\spadesuit \text K\diamondsuit 9\spadesuit$;
- 两对():两张相同点数的牌,加另外两张相同点数的牌。例:$\text A\clubsuit \text A\diamondsuit 8\heartsuit 8\spadesuit \text Q\spadesuit$;
- 一对():两张相同点数的牌。例:$9\heartsuit 9\spadesuit \text A\clubsuit \text J\spadesuit 8\heartsuit$;
- 无对():不能排成以上组合的牌,以点数决定大小。例:$\text A\diamondsuit \text Q\diamondsuit \text J\spadesuit 9\clubsuit 8\clubsuit$。
原件2:tmp2.png
若牌型一样则利用点数和花色决定胜负。(点数优先)
点数的顺序(从大至小)为:。(注:当张手牌是的时候,可以看作最小的牌,此时的牌型仍然为顺子,是顺子里面最小的一个)。
花色的顺序(大至小)为:黑桃()>红心()>梅花()>方块()。举例说明:
- $\text Q\diamondsuit \text J\diamondsuit 10\diamondsuit 9\diamondsuit 8\diamondsuit >8\clubsuit 8\heartsuit 8\spadesuit \text K\heartsuit \text K\spadesuit$(前者牌型为同花顺,比后者大):
- $9\clubsuit 9\diamondsuit 9\spadesuit \text Q\heartsuit \text Q\spadesuit>8\clubsuit 8\diamondsuit 8\spadesuit \text K\heartsuit \text K\spadesuit$(两者牌型均为满堂红,比较牌型中三张同一点数的牌比大);
- $\text A\clubsuit \text A\diamondsuit 8\heartsuit 8\spadesuit \text Q\spadesuit>\text A\spadesuit A\heartsuit 7\heartsuit 7\spadesuit \text K\spadesuit$(两者牌型均为两对,且最大的对子相同,此时比较次大的对子,比大);
- $\text A\spadesuit \text Q\spadesuit \text J\heartsuit 9\heartsuit 8\heartsuit>\text A\diamondsuit \text Q\diamondsuit \text J\spadesuit 9\clubsuit 8\clubsuit$(两者牌型均为无对,所有数码均相同,此时比较最大牌的花色,);
- $4\spadesuit 4\heartsuit \text A\diamondsuit \text Q\diamondsuit 5\diamondsuit >4\clubsuit 4\diamondsuit \text A\spadesuit \text Q\spadesuit 5\spadesuit $(两者牌型均为一对,所有数码均相同,此时对为牌型里最大的部分,因此比较)。
在小和小玩梭哈的过程中,小总希望能够实时了解目前的形势,即根据自己手上的牌算出自己的胜率。但是他的编程能力有限,你能帮他完成这个任务么?
输入格式
第一行包含 个正整数 ,表示小 自己手上牌的数量。
接下来 行每行用两个整数描述一张小 手上的牌:第一个数表示牌的数码( 表示 , 表示 , 表示 , 表示 ),第二个数表示牌的花色( 表示黑桃, 表示红心, 表示梅花, 表示方块)。
接下来 行每行用两个整数描述一张小 手上的明牌:第一个数表示牌的数码( 表示 , 表示 , 表示 , 表示 ),第二个数表示牌的花色表示黑桃, 表示红心, 表示梅花, 表示方块)。
输出格式
仅包含一行,格式为 A/B 形式。 为两个互质的自然数,A/B 表示了小 当前局面下的获胜可能性。特别的,若 为 ,则应输出 0/1。
样例
5
2 1
2 2
2 3
2 4
3 1
1 1
1 2
1 3
3 2
42/43
样例说明
小手上牌的牌型是 条,小若底牌是方块则也能构成条,并通过数码大获胜。其他情况下都是小获胜。
数据范围与约定
对于的数据,.