CF1944B Equal XOR

题目描述

给定一个长度为 $2n$ 的数组 $a$,其中每个整数 $1$ 到 $n$ 恰好出现两次。 同时给定一个整数 $k$($1 \leq k \leq \lfloor \frac{n}{2} \rfloor$)。 你需要找到两个长度均为 $2k$ 的数组 $l$ 和 $r$,使得: - $l$ 是 $[a_1, a_2, \ldots, a_n]$ 的一个子集 $^\dagger$; - $r$ 是 $[a_{n+1}, a_{n+2}, \ldots, a_{2n}]$ 的一个子集; - $l$ 中所有元素的按位异或等于 $r$ 中所有元素的按位异或,即 $l_1 \oplus l_2 \oplus \ldots \oplus l_{2k} = r_1 \oplus r_2 \oplus \ldots \oplus r_{2k}$。 可以证明,至少存在一组 $l$ 和 $r$ 满足条件。如果有多组解,你可以输出任意一组。 $^\dagger$ 如果一个序列 $x$ 可以通过从序列 $y$ 中删除若干(可以为零或全部)元素,并重新排列剩余元素得到,则称 $x$ 是 $y$ 的一个子集。例如,$[3,1,2,1]$、$[1,2,3]$、$[1,1]$ 和 $[3,2]$ 都是 $[1,1,2,3]$ 的子集,但 $[4]$ 和 $[2,2]$ 不是 $[1,1,2,3]$ 的子集。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \leq t \leq 5000$),表示测试用例的数量。接下来是每组测试用例的描述。 每组测试用例的第一行包含两个整数 $n$ 和 $k$($2 \leq n \leq 5 \cdot 10^4$,$1 \leq k \leq \lfloor \frac{n}{2} \rfloor$)。 第二行包含 $2n$ 个整数 $a_1, a_2, \ldots, a_{2n}$($1 \leq a_i \leq n$)。保证 $a$ 中每个 $1$ 到 $n$ 的整数恰好出现两次。 保证所有测试用例中 $n$ 的总和不超过 $5 \cdot 10^4$。

输出格式

对于每组测试用例,输出两行。 第一行输出 $2k$ 个整数 $l_1, l_2, \ldots, l_{2k}$。 第二行输出 $2k$ 个整数 $r_1, r_2, \ldots, r_{2k}$。 如果有多组解,你可以输出任意一组。

说明/提示

在第一个测试用例中,我们选择 $l=[2,1]$,$r=[2,1]$。$[2,1]$ 是 $[a_1, a_2]$ 的一个子集,$[2,1]$ 是 $[a_3, a_4]$ 的一个子集,且 $2 \oplus 1 = 2 \oplus 1 = 3$。 在第二个测试用例中,$6 \oplus 4 = 1 \oplus 3 = 2$。 由 ChatGPT 4.1 翻译