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 翻译