CF2262A1 Floor of MEX (Easy Version)

题目描述

**这是该题目的简单版本。不同之处在于,本版本中你只需要找到一个满足约束条件的子集即可。只有当你解决了所有版本的问题后,才能进行 hack。** 定义 $$f(S,x)=\text{mex}\left(\left\{\left\lfloor \frac{y}{x}\right\rfloor : y\in S\right\}\right), $$ 其中 $S$ 是一个非负整数集合,$x$ 是一个正整数。$^{\text{∗}}$ Farmer John 选择 $\{0,1,\ldots,n-1\}$ 的一个(可能为空)子集 $A$。他随后构造一个长度为 $n$ 的数组 $a$,其中对于每个 $1\le k\le n$,有 $a_k = f(A,k)$。 Bessie 是一头调皮的奶牛,她把集合 $A$ 藏了起来。Farmer John 只能得到数组 $a_1,a_2,\ldots,a_n$。 你的任务是构造任意一个(可能为空)子集 $B\subseteq \{0,1,\ldots,n-1\}$,使得对于每个 $1 \le k \le n$,有 $f(B,k)=a_k$。保证输入的数组都存在满足条件的 $B$。 $^{\text{∗}}$ 其中 $\operatorname{mex}(c)$ 表示集合 $c$ 的最小未出现元素(Minimum Excluded Value, MEX)。在本题中,即集合中未出现的最小非负整数。

输入格式

每个测试点包含多组测试用例。第一行包含整数 $t$($1 \le t \le 10^4$),表示测试用例数。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 10^5$)。 第二行包含 $n$ 个整数 $a_1,a_2,\ldots,a_n$($0 \leq a_i \leq n$)。 保证一定存在一个 $B \subseteq \{0,1,\ldots,n-1\}$,使得对每个 $1 \le k \le n$,都有 $f(B,k)=a_k$。 所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每组测试用例,输出两行。 第一行输出一个整数 $m$,表示集合 $B$ 的大小。 第二行输出 $m$ 个互不相同的整数 $b_1,b_2,\ldots,b_m$,表示 $B$ 的所有元素。如果 $m=0$,则第二行输出为空。 $B$ 中的元素可以按任意顺序输出。 如果有多个解,你可以输出任意一个。

说明/提示

对于第一个测试用例,其中一个可能的答案是 $$B=\{1,2,3,4,5\}。$$ 则 $$f(B,1)=\text{mex}(\{1,2,3,4,5\})=0,$$ $$f(B,2)=\text{mex}(\{0,1,2\})=3,$$ 且 $$f(B,3)=f(B,4)=f(B,5)=2。$$ 最后, $$f(B,6)=\text{mex}(\{0\})=1。$$ 因此,数组为 $[0,3,2,2,2,1]$。 对于第二个测试用例,其中一个可能的答案是 $B=\{0,1\}$。 此时 $f(B,1)=2$,并且对于每个 $2\le k\le 5$,都有 $$\left\{\left\lfloor y/k\right\rfloor : y\in B\right\}=\{0\},$$ 所以 $f(B,k)=1$。因此,数组为 $[2,1,1,1,1]$。 由 ChatGPT 5 翻译