#P202261. Ri-Dora
Ri-Dora
说明
小C十分喜欢玩雀魂,经常在深夜玩到血压飙升。
而小C尤其不喜欢副露,原因是他喜欢立直翻里宝牌,他十分相信自己的运气。小C想计算一下自己已经立直并和牌,且没有暗杠过的场次,请你算算小C一共翻出里宝牌的概率是多少呢?
注:
- 副露:吃、碰、杠(暗杠除外)都算副露,副露后不可立直。
- 立直:在未副露的情况下,听牌可以选择立直,宣告立直后,立直人手里的牌不能变动,摸啥打啥直到和牌或放统。
- 里宝牌:每局初始有一张宝牌指示牌,场上每出现一次杠就会多一张宝牌指示牌,大于等于 $2$ 人杠的总次数大于等于 $4$ 的情况下会直接流局,游戏直接终止。简单来说,就是一般情况下和牌时场上最多出现 $3$ 次杠,也只有 $3$ 个杠宝牌。在立直人和牌后,拥有翻里宝牌的权利。场上每有一张宝牌指示牌,即可翻一张里宝牌指示牌。若手牌中有宝牌指示牌所对应的宝牌,即可加番,赢得更高的点数。
- (里)宝牌指示牌:(里)宝牌指示牌的下一张为(里)宝牌。
- 数牌(筒子、索子和万子)的顺序为:$1,2,3,4,5,6,7,8,9,1,2,\cdots$
- 风牌的顺序为:东、南、西、北、东、南……
- 三元牌的顺序为:白、中、发、白、中……
例如,指示牌为三万,对应的宝牌即为四万;九筒对应的宝牌为一筒;北风对应的宝牌为东风……
输入格式
第一行输入一个整数 $t(1\le t \le 12)$,表示总场次。
接下来有 $t$ 组数据,每组数据的输入如下:
第一行为一行拥有 $28$ 个字符的字符串,表示小C的手牌(保证是一副完整的和牌,一共有 $14$ 张牌,每张牌由两个字符组成,第一个字符为 $p,s,m,f,y$,分别表示筒子、索子、万子、风牌和三元牌。数牌的第二个字符为 $1-9$,表示对应的数字;风牌的第二个字符为 $1,2,3,4$,分别表示东、南、西、北;三元牌的第二个字符为 $1,2,3$,分别表示白、中、发)。
第二行为一个整数 $n(1\le n\le 4)$,表示小B翻的里宝牌个数。
第三行为一行拥有 $2n$ 个字符的字符串,表示里宝牌指示牌(牌的表示方法同上)。
输出格式
输出一个浮点数,结果保留三位小数,表示小C手牌中里宝牌的总概率。$(总概率=\frac{\sum手牌中里宝牌个数}{\sum总里宝牌个数})$。
样例
1
p1p2p3p7p7p7s3s3m5m6m7y3y3y3
1
p6
0.750
样例
1
m1m2m3m4m5m6m7m8m9f1f1f1y1y1
4
m9s2f2y3
0.188
提示
样例 $1$ 中,只有一张里宝牌指示牌六筒,所以七筒为里宝牌,一共拥有 $3$ 张,一张宝牌指示牌对应 $4$ 张里宝牌,故概率为 $0.75$;
样例 $2$ 中,里宝牌指示牌分别为九万、二索、南风、发财,所以对应的里宝牌分别为一万、三索、西风、白板,一共拥有 $3$ 张,总里宝牌为 $16$ 张,概率为 $0.1875$。