CF1863C.MEX Repetition

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

MEX Repetition

题目描述

给定一个由 00nn 的两两不同的整数构成的数组 a1,a2,,ana_1,a_2,\ldots,a_n。请考虑如下操作:

  • 按顺序依次对每个 ii11nn,将 aia_i 替换为 MEX(a1,a2,,an)\operatorname{MEX}(a_1, a_2, \ldots, a_n)

这里,MEX\operatorname{MEX} 表示一组整数 c1,c2,,cmc_1, c_2, \ldots, c_m 中未出现的最小非负整数。例如,MEX(0,2,2,1,4)=3\operatorname{MEX}(0, 2, 2, 1, 4) = 3MEX(1,2)=0\operatorname{MEX}(1, 2) = 0

请输出经过 kk 次上述操作后的数组。

输入格式

每组测试数据包含多组测试用例。第一行包含测试用例数 tt1t1051 \le t \le 10^5)。接下来是每组测试用例的描述。

每组测试用例的第一行包含两个整数 nnkk1n1051\le n\le 10^51k1091\le k\le 10^9)。

第二行包含 nn 个两两不同的整数 a1,a2,,ana_1,a_2,\ldots,a_n0ain0\le a_i\le n),表示操作前的数组。

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每组测试用例,输出经过 kk 次操作后的 nn 个数组元素。

说明/提示

在第一个测试用例中,整个过程如下:

  1. 第一次操作,数组由 [1][1] 变为 [0][0],因为 MEX(1)=0\operatorname{MEX}(1) = 0
  2. 第二次操作,数组由 [0][0] 变为 [1][1],因为 MEX(0)=1\operatorname{MEX}(0) = 1

因此,两次操作后数组为 [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 翻译

样例

5
1 2
1
3 1
0 1 3
2 2
0 2
5 5
1 2 3 4 5
10 100
5 3 0 4 2 1 6 9 10 8
1
2 0 1
2 1
2 3 4 5 0
7 5 3 0 4 2 1 6 9 10

在线编程 IDE

建议全屏模式获得最佳体验