CF2084D Arcology On Permafrost
题目描述
给定三个整数 $n$、$m$ 和 $k$,其中满足 $m \cdot k < n$。
对于一个由非负整数组成的序列 $b$,定义 $f(b)$ 如下:
- 你可以对 $b$ 进行如下操作:
- 设 $l$ 表示当前 $b$ 的长度。选择一个正整数 $1 \leq i \leq l - k + 1$,删除从下标 $i$ 到 $i + k - 1$ 的子数组,并将剩余部分拼接。换句话说,将 $b$ 替换为:
$$
[b_1, b_2, \ldots, b_{i - 1}, b_{i + k}, b_{i + k + 1}, \ldots, b_l].
$$
- $f(b)$ 定义为在进行最多 $m$ 次(可以是零次)上述操作后,$\operatorname{mex}(b)$ 的**最小**可能值 $^{\text{∗}}$。
你需要构造一个长度为 $n$ 的非负整数序列 $a$,满足以下条件:
- 对于所有 $1 \le i \le n$,$0 \le a_i \le 10^9$。
- 在所有满足条件的序列 $a$ 中,$f(a)$ 的值最大化。
$^{\text{∗}}$ 集合 $c = \{c_1, c_2, \ldots, c_k\}$ 的最小排除值(MEX)定义为不包含在 $c$ 中的最小非负整数 $x$。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 10^4$)。接下来是每个测试用例的描述。
每个测试用例的第一行包含三个整数 $n$、$m$ 和 $k$($2 \le n \le 2 \cdot 10^5$,$1 \le m < n$,$1 \le k < n$,$1 \le m \cdot k < n$)。
保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$)。
如果有多个答案,输出任意一个即可。
说明/提示
- 在第一个测试用例中,可以证明 $f(a) = 1$ 是最大化的结果。
- 在第二个测试用例中,可以证明 $f(a) = 1$ 是最大化的结果。$f(a) = 1$ 是因为你可以进行以下操作:
- 选择 $i = 3$,删除下标 $3$ 到 $4$ 的子数组,剩余部分拼接后 $a$ 变为 $[0, 1, 0]$。
- 选择 $i = 1$,删除下标 $1$ 到 $2$ 的子数组,剩余部分拼接后 $a$ 变为 $[0]$。
- 在第三个测试用例中,可以证明 $f(a) = 2$ 是最大化的结果。$f(a) = 2$ 是因为你可以进行以下操作:
- 选择 $i = 2$,删除下标 $2$ 到 $5$ 的子数组,剩余部分拼接后 $a$ 变为 $[0, 1]$。
- 在第四个测试用例中,可以证明 $f(a) = 2$ 是最大化的结果。
- 在第五个测试用例中,可以证明 $f(a) = 3$ 是最大化的结果。
- 在第六个测试用例中,可以证明 $f(a) = 2$ 是最大化的结果。
翻译由 DeepSeek V3 完成