AT_abc193_d [ABC193D] Poker

题目描述

有 $K$ 张写有 $1, 2, \dots, 9$ 的卡牌,每种数字各 $K$ 张,共 $9K$ 张卡牌。 这些卡牌被随机洗牌后,分别发给高桥君和青木君各 $4$ 张明牌和 $1$ 张暗牌。 高桥君手中的卡牌以字符串 $S$ 给出,青木君手中的卡牌以字符串 $T$ 给出。 $S$ 和 $T$ 均为 $5$ 个字符的字符串,前 $4$ 个字符为 `1`、`2`、$\dots$、`9` 中的一个,表示明牌上的数字。最后 $1$ 个字符为 `#`,表示暗牌。 每个人手牌的得分定义为:设 $c_i$ 表示手牌中数字 $i$ 出现的次数,则得分为 $\displaystyle\sum_{i=1}^9 i \times 10^{c_i}$。 如果高桥君的得分高于青木君,则高桥君获胜。 请计算高桥君获胜的概率。

输入格式

输入通过标准输入给出,格式如下: > $K$ $S$ $T$

输出格式

请输出高桥君获胜的概率,结果为小数。 当你的答案与标准答案的绝对误差或相对误差不超过 $10^{-5}$ 时,将被判定为正确。

说明/提示

## 限制条件 - $2 \leq K \leq 10^5$ - $|S| = |T| = 5$ - $S$ 和 $T$ 的第 $1$ 到第 $4$ 个字符为 `1`、`2`、$\dots$、`9` 中的一个 - `1`、`2`、$\dots$、`9` 在 $S$ 和 $T$ 中合计最多出现 $K$ 次 - $S$ 和 $T$ 的第 $5$ 个字符为 `#` ## 样例解释 1 例如,高桥君的手牌为 `11449`,青木君的手牌为 `22338` 时,高桥君的得分为 $100+2+3+400+5+6+7+8+90=621$,青木君的得分为 $1+200+300+4+5+6+7+80+9=612$,因此高桥君获胜。由于胜负取决于暗牌的大小,高桥君获胜的概率为 $\frac{4}{9}$。 ## 样例解释 3 只有当高桥君的手牌为 `11222`,青木君的手牌为 `22281` 时,高桥君才会获胜。此时高桥君获胜的概率为 $\frac{2}{1035}$。 由 ChatGPT 4.1 翻译