atcoder#ABC193D. [ABC193D] Poker
[ABC193D] Poker
题目描述
が表に書かれたカードが 枚ずつ、計 枚のカードがあります。
これらのカードをランダムにシャッフルして、高橋くんと青木くんにそれぞれ、 枚を表向きに、 枚を裏向きにして配りました。
高橋くんに配られたカードが文字列 として、青木くんに配られたカードが文字列 として与えられます。
は 文字の文字列で、先頭 文字は 1
, 2
, , 9
からなり、表向きのカードに書かれた数を表します。 末尾 文字は #
であり、裏向きのカードであることを表します。
枚の手札の点数を、 をその手札に含まれる の枚数として、 で定義します。
高橋くんが青木くんより点数の高い手札を持っていたら高橋くんの勝ちです。
高橋くんの勝つ確率を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
高橋くんの勝つ確率を小数で出力せよ。
想定解答との絶対誤差または相対誤差が 以下であれば正解と判定される。
题目大意
题意:
有 张卡片,每张卡片上写有 中的一个数。这些卡片被随机洗牌,然后将其中 张正面朝上, 张背面朝上的卡片分别发给高桥和青木。高桥获得的卡片用字符串 表示,青木获得的卡片用字符串 表示。
字符串 和 是长度为 的字符串,其中前 个字符是 中的某一个数字,表示正面朝上的卡片上的数字。接下来的 个字符是 #,表示背面朝上的卡片。定义一组牌的得分为其中包含 张数字 的牌的数量乘以 的和,即:
其中 是字符串 或 中数字 出现的次数。如果高桥的得分比青木高,则高桥获胜。请计算高桥获胜的概率。
2
1144#
2233#
0.4444444444444444
2
9988#
1122#
1.0
6
1122#
2228#
0.001932367149758454
100000
3226#
3597#
0.6296297942426154
提示
制約
- の 文字目から 文字目は
1
,2
, ,9
のいずれか 1
,2
, ,9
はそれぞれ、 と に合計 回までしか出現しない- の 文字目は
#
Sample Explanation 1
例えば、高橋くんの手札が 11449
、青木くんの手札が 22338
の場合、高橋くんの点数は 、青木くんの点数は で、高橋くんの勝ちになります。 裏向きのカードの大小によって勝敗が決まるので、高橋くんの勝つ確率は です。
Sample Explanation 3
高橋くんの手札が 11222
、青木くんの手札が 22281
の場合にのみ高橋くんの勝ちになります。 高橋くんの勝つ確率は です。