#abc470e. Concentration

    ID: 4380 Type: Default 2000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>提高+/省选-期望动态规划对称性

Concentration

题目描述

高橋君在玩一个类似「翻牌记忆」的单人游戏。

2N2N 张卡片,正面写着一个数,背面什么都没有。对每个 1iN1 \le i \le N,写着 AiA_i 的卡片恰好有 22AiA_i 两两不同)。

游戏流程如下:

  • 2N2N 张卡片洗乱后背面朝上摆好;
  • 生命值设为 LL得分设为 00
  • 重复下面的过程,直到生命值变成 00 或场上没有卡片:
    • 选一张背面朝上的卡片翻开,记它上面的数为 XX
    • 再选一张背面朝上的卡片翻开,记它上面的数为 YY
    • X=YX = Y,把这两张卡片从场上移除,得分增加 XX
    • XYX \ne Y,把这两张卡片重新翻回背面,生命值减 11

高橋君知道 A1,,ANA_1, \ldots, A_N 的值,也完整记得他见过的每一张卡片的位置和数值。他会按照「让最终得分的期望最大」的方式最优地行动。

请求出游戏结束时得分的期望值

输入格式

N L
A_1 A_2 ... A_N

输出格式

输出期望得分。与标准答案的绝对误差或相对误差不超过 10510^{-5} 即视为正确。

输入示例 1

3 2
1 2 3

输出示例 1

3.8666666667

示例 1 说明

游戏可能这样进行(把 66 张卡片记作 A \sim F):

  • 生命 22、得分 00 开局;
  • 翻开 A33,翻开 B22,不同 → 翻回去,生命变 11
  • 翻开 C33此时高橋君记得 A 也是 33,于是翻开 A → 配对成功,移除两张,得分变 33
  • 翻开 D11,翻开 E22,不同 → 生命变 00,游戏结束,得分 33

对所有洗牌情况取期望后得到 3.86663.8666\ldots

输入示例 2

5 2
2 3 5 7 101

输出示例 2

17.8560846561

示例 2 说明

注意数值差异很大(有 101101)但期望仍可按整体比例计算——这与「策略不依赖具体数值」这一性质有关。

输入示例 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

示例 3 说明

2020 对牌、1010 条命,Ai=2100\sum A_i = 2100。期望得分约为 770.71770.71,也就是平均能配掉约 770.712100×207.34\dfrac{770.71}{2100} \times 20 \approx 7.34 对。可以用它检验「期望得分 = 总和 × 期望配对数 / N」这条对称性结论:把 AiA_i 换成任意其他 2020 个互不相同的数,只要总和仍是 21002100,答案就应该完全一样。

约束条件

  • 1N2001 \le N \le 200
  • 1L2001 \le L \le 200
  • 1A1<A2<<AN1051 \le A_1 < A_2 < \cdots < A_N \le 10^5
  • 所有输入值均为整数