#atabc470e. Concentration
Concentration
得分: 分
问题陈述
高桥正在玩一个类似于记忆匹配游戏的接龙游戏。
一共有 张牌。每张牌的正面都写着一个数字,背面什么也没写。
每张 满足 ,正好有两张牌上写着 。 是一对不同的)。
高桥用这些牌进行游戏,程序如下。
- 将 洗牌,牌面向下摆放。
- 设置生命为 ,分数为 。
- 重复以下步骤,直到生命值变为 或桌面上没有牌为止:
- 在桌面上选择一张面朝下的牌,将其翻转朝上,查看上面写的数字 。
- 在桌子上选择一张正面朝下的牌,将其正面朝上,然后查看上面写着的数字 。
- 如果是 ,则从桌上移走这两张牌,并增加分数 。
- 如果是 ,则再次将两张牌正面朝下,生命值减少 。
求当高桥在游戏结束时采取最优行动,使游戏结束时的得分最大化时,游戏结束时得分的期望值。
下面是这盘棋更正式的说明。
- 高桥知道下面描述的游戏规则。
- 高桥知道 的值。
- 假设 是一个序列,由长度为 的序列 均匀随机地选择一个置换得到。
- 最初,高桥不知道 的任何值。一旦他知道了 的值,就会完全记住它。
- 假设生命为 ,分数为 , 为 。高桥总是知道这些值。
- 重复下面的步骤,直到生命值变成 或 变成空为止:
- 根据到此为止所获得的信息,高桥从 中选择一个元素,并称之为 。
- 的值被揭示,高桥得知了它。
- 根据到此为止所获得的信息(包括 的值),高桥从 中选择一个元素,并将其称为 。
- 的值被揭示出来,高桥得知了它。
- 如果是 ,则从 中删除 和 ,并加上 的分。
- 如果是 ,则减少生命值 。
- 高桥的最优行动是使对局结束时的期望值最大化。
约束条件
- 所有输入值均为整数。
输入
输入内容由标准输入法提供,格式如下
输出
输出答案
如果与真实答案的绝对误差或相对误差不超过 ,则认为输出正确。
输入示例 1
3 2
1 2 3
样本输出 1
3.8666666667
例如,游戏可以如下进行。为了区分这六张牌,我们称之为 A 、 B 、 C 、 D 、 E 、 F 。
- 游戏开始时的生命值为 ,得分为 。
- 将牌
A翻面。上面写着 。 - 将牌
B正面朝上。上面写着 。 - 由于写着不同的数字,再次将两张牌正面朝下,生命值减少 至 。
- 将
C翻面。上面写着 。 - 将牌
A正面朝上。上面写着 。 - 因为写的是相同的数字,所以将两张牌都从桌上拿开,分数增加 至 。
- 将牌
D正面朝上。上面写着 。 - 将纸牌
E正面朝上。上面写着 。 - 由于写的数字不同,再次将两张牌正面朝下,生命值减少 至 。
- 由于生命值变成了 ,游戏结束。得分是 。
请注意,在这个顺序中将牌 C 面朝上之后,高桥可以选择 "根据牌 C 正面写有 的事实,将另一张已知写有 的牌 A 面朝上"。
输入示例 2
5 2
2 3 5 7 101
样本输出 2
17.8560846561
输入样本 3
20 10
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200
输出样本 3
770.7122293087