CF1863C MEX Repetition
题目描述
给定一个由 $0$ 到 $n$ 的两两不同的整数构成的数组 $a_1,a_2,\ldots,a_n$。请考虑如下操作:
- 按顺序依次对每个 $i$ 从 $1$ 到 $n$,将 $a_i$ 替换为 $\operatorname{MEX}(a_1, a_2, \ldots, a_n)$。
这里,$\operatorname{MEX}$ 表示一组整数 $c_1, c_2, \ldots, c_m$ 中未出现的最小非负整数。例如,$\operatorname{MEX}(0, 2, 2, 1, 4) = 3$,$\operatorname{MEX}(1, 2) = 0$。
请输出经过 $k$ 次上述操作后的数组。
输入格式
每组测试数据包含多组测试用例。第一行包含测试用例数 $t$($1 \le t \le 10^5$)。接下来是每组测试用例的描述。
每组测试用例的第一行包含两个整数 $n$ 和 $k$($1\le n\le 10^5$,$1\le k\le 10^9$)。
第二行包含 $n$ 个两两不同的整数 $a_1,a_2,\ldots,a_n$($0\le a_i\le n$),表示操作前的数组。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每组测试用例,输出经过 $k$ 次操作后的 $n$ 个数组元素。
说明/提示
在第一个测试用例中,整个过程如下:
1. 第一次操作,数组由 $[1]$ 变为 $[0]$,因为 $\operatorname{MEX}(1) = 0$。
2. 第二次操作,数组由 $[0]$ 变为 $[1]$,因为 $\operatorname{MEX}(0) = 1$。
因此,两次操作后数组为 $[1]$。
在第二个测试用例中,一次操作后数组变化如下:$[{\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}, 1, 3] \rightarrow [2, {\mkern3mu\underline{\mkern-3mu {\bf 1}\mkern-3mu}\mkern3mu}, 3] \rightarrow [2, 0, {\mkern3mu\underline{\mkern-3mu {\bf 3}\mkern-3mu}\mkern3mu}] \rightarrow [2, 0, 1]$。
在第三个测试用例中,一次操作后数组变化如下:$[{\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}, 2] \rightarrow [1, {\mkern3mu\underline{\mkern-3mu {\bf 2}\mkern-3mu}\mkern3mu}] \rightarrow [1, 0]$。第二次操作:$[{\mkern3mu\underline{\mkern-3mu {\bf 1}\mkern-3mu}\mkern3mu}, 0] \rightarrow [2, {\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}] \rightarrow [2, 1]$。
由 ChatGPT 4.1 翻译