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 翻译