AT_s8pc_6_f Random Shuffles

题目描述

新学期伊始,E869120 君想在新的班级中展开互动,于是他设计了一种卡片游戏。 - 共有 $N$ 张卡片,编号分别是 $1, 2, 3, \ldots, N$。 - 每张卡片被涂上一种颜色,颜色共有 $D$ 种,用数字 $0, 1, 2, \ldots, D-1$ 表示。 - 第 $i$ 张卡片的颜色是 $S_i\ (0 \leq S_i < D)$,卡片上写着编号 $i$。 这款游戏有 $D$ 名玩家参与,规则如下: 1. 首先,将编号为 $1, 2, 3, \ldots, k$ 的卡片依次叠起来,形成一个牌堆。 2. 然后,重复进行以下操作 $L$ 次: - 随机选择一个整数 $i$,$1 \le i \le k$,交换从上往下的第 $i$ 张卡片和第 $i+1$ 张卡片的位置。 3. 最后,将牌堆中的卡片按照玩家 $1, 2, 3, \ldots, D, 1, 2, 3,\ldots, D$ 的顺序逐一发给每位玩家。 4. 任何玩家的得分等于他手中涂有颜色 $(i-1)$ 的卡片上的数字之和。 特别注意,在步骤 2 中,“从上到下第 $k+1$ 张卡片”代表的是“从上到下第 1 张卡片”。 游戏共进行 $N \div D$ 轮。在第 $i$ 轮,游戏中的 $k = i \times D$。请计算每轮中每个玩家的得分期望值。 **由于输出数据可能很大,输出格式会有所不同,请参阅“输出格式”部分。**

输入格式

输入通过标准输入给出,格式如下: > $N$ $D$ $L$ $S_{1}S_{2}S_{3}S_{4}\ldots S_{N}$ $S_1, S_2, \ldots, S_N$ 是一个整体数字串。

输出格式

依次输出 $D$ 行。 第 $i$ 行应该输出玩家 $i$ 在 $N \div D$ 轮游戏中得分期望值的总和。 答案的绝对误差或相对误差都不能超过 $10^{-5}$。

说明/提示

### 约束条件 - $D$ 是 $3$ 到 $10$ 之间的整数 - $N$ 是 $3$ 到 $3,000,000$ 之间的 $D$ 的倍数 - $L$ 范围在 $1$ 到 $1,000,000,000$ 之间 - $S_i\ (1 \leq i \leq N)$ 是 $0, 1, 2, \ldots, D-1$ 的一个数 ### 子任务 这个问题被分为若干个子任务,每个子任务都需要满足其所有测试用例: 1. (50 分):$N \leq 10, D \leq 4, L = 1$ 2. (70 分):$N \leq 10, D \leq 4, L \leq 5$ 3. (80 分):$N \leq 50, D \leq 4, L \leq 300$ 4. (100 分):$N \leq 3,000, D \leq 4, L \leq 300$ 5. (210 分):$N \leq 3,000, D \leq 4$ 6. (130 分):$N \leq 50,000, D \leq 4$ 7. (40 分):$N \leq 150,000, D \leq 6$ 8. (40 分):$N \leq 300,000, D \leq 8$ 9. (40 分):$N \leq 500,000, D \leq 10$ 10. (40 分):$N \leq 800,000, D \leq 10$ 11. (200 分):$N \leq 3,000,000, D \leq 10$ ### 样例解释 #### 样例 1 假设初始卡片排列为 $(1, 2, 3)$,进行 $L=1$ 次操作后,可能得到的排列有 $(1, 3, 2)$, $(2, 1, 3)$, 和 $(3, 2, 1)$,每种排列的出现概率均为 $1/3$。 对每种排列,玩家的得分为: - $(1, 3, 2)$:玩家得分分别是 $1, 0, 0$ - $(2, 1, 3)$:玩家得分分别是 $0, 0, 3$ - $(3, 2, 1)$:玩家得分分别是 $0, 2, 0$ 因此,玩家的期望得分分别为 $1/3, 2/3, 1$。 #### 样例 2 在第 1 轮中,以下 4 种情况均等概率可能发生: - $(1, 2, 4, 3)$:玩家得分分别是 $1, 2, 4, 0$ - $(1, 3, 2, 4)$:玩家得分分别是 $1, 3, 0, 0$ - $(2, 1, 3, 4)$:玩家得分分别是 $0, 0, 0, 0$ - $(4, 2, 3, 1)$:玩家得分分别是 $0, 2, 0, 0$ 因此,第 1 轮时,各玩家的期望得分分别是 $1/2, 7/4, 1, 0$。 在第 2 轮中,以下 8 种情况均等概率可能发生: - $(1, 2, 3, 4, 5, 6, 8, 7)$:玩家��分分别是 $1, 2, 0, 0$ - $(1, 2, 3, 4, 5, 7, 6, 8)$:玩家得分分别是 $1, 9, 0, 0$ - $(1, 2, 3, 4, 6, 5, 7, 8)$:玩家得分分别是 $1, 2, 0, 0$ - $(1, 2, 3, 5, 4, 6, 7, 8)$:玩家得分分别是 $1, 2, 0, 5$ - $(1, 2, 4, 3, 5, 6, 7, 8)$:玩家得分分别是 $1, 2, 4, 0$ - $(1, 3, 2, 4, 5, 6, 7, 8)$:玩家得分分别是 $1, 3, 0, 0$ - $(2, 1, 3, 4, 5, 6, 7, 8)$:玩家得分分别是 $0, 0, 0, 0$ - $(8, 2, 3, 4, 5, 6, 7, 1)$:玩家得分分别是 $8, 2, 0, 0$ 因此,第 2 轮时,各玩家的期望得分分别是 $7/4, 11/4, 1/2, 5/8$。 **本翻译由 AI 自动生成**