我正在学习魔术以给我的女朋友 Alice 留下深刻印象。我最近的魔术是一个概率魔术,也就是说,它在大多数情况下有效,但并非总是有效。为了表演这个魔术,我首先洗好一副有很多张扑克牌的牌,并将它们正面朝上排成一行放在桌子上。然后,Alice 秘密地从前十张牌中选择一张(即她选择了一个 $x_0$,一个 $1$ 到 $10$ 之间的秘密数字),并按如下方式重复跳牌:在选择了位置 $x_i$ 处的一张牌(牌面数值为 $c(x_i)$)后,她将选择位置 $x_{i+1} = x_i + c(x_i)$ 处的牌。其中,J、Q 和 K 计为 $10$,A 计为 $11$。你可以假设桌上至少有十张牌。
Alice 一旦发现位置 $x_i + c(x_i)$ 处没有牌,就会停止此过程。然后,我从一个随机选择的起始位置开始执行相同的过程,该位置可能与 Alice 选择的位置不同。结果往往是我最终停在同一个位置。Alice 对这个魔术印象非常深刻。
然而,我更感兴趣的是其背后的数学原理。给定我随机选择的起始位置以及每一张被选中牌的牌面(包括最后一张),你能计算出 Alice 选择的起始位置最终停在同一张牌上的概率吗?你可以假设她的起始位置是在 $1$ 到 $10$ 之间均匀随机选择的。我忘记记录我跳过的牌,所以这些牌是未知的。你可以假设每一张未知牌的牌面都独立于其他牌面,且在所有可能的牌面(即 2-10、J、Q、K 和 A)中均匀随机分布。
图 1 – 第一个样例输入的说明:我的起始位置是 2,所以我从那张牌开始选择。然后我根据牌面数值不断跳牌。这个过程一直迭代,直到没有足够的牌可以跳(在本例中为 Q)。由于 Q 计为 10,最终的 Q 牌后面跟着 0 到 9 张未知的牌。
输入格式
对于每个测试用例: 一行包含两个整数 $n$ ($1 \le n \le 100$) 和 $m$ ($1 \le m \le 10$),其中 $n$ 是被选中牌的数量,$m$ 是我第一次选中牌的 1-based 位置。 一行包含 $n$ 个标记,按顺序指定了 $n$ 张被选中的牌面(包括最后一张)。每张牌面要么给出一个整数 $x$ ($2 \le x \le 10$),要么给出一个字符(J、Q、K 或 A,如上所述)。
输出格式
对于每个测试用例,输出一行,包含 Alice 选择的起始位置最终停在同一张牌上的概率。你的输出绝对误差应不超过 $10^{-7}$。
样例
输入 1
5 2 2 3 5 3 Q 1 1 A 1 2 A 1 10 A 6 1 2 2 2 2 2 2 7 1 2 2 2 2 2 2 2 3 10 10 J K
输出 1
0.4871377757023325348071573 0.1000000000000000000000000 0.1000000000000000000000000 0.1748923357025314239697490 0.5830713210321767445117468 0.6279229611115749556280350 0.3346565827603272001891974