CF1944B.Equal XOR
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 2n 的数组 a,其中每个整数 1 到 n 恰好出现两次。
同时给定一个整数 k(1≤k≤⌊2n⌋)。
你需要找到两个长度均为 2k 的数组 l 和 r,使得:
- l 是 [a1,a2,…,an] 的一个子集 †;
- r 是 [an+1,an+2,…,a2n] 的一个子集;
- l 中所有元素的按位异或等于 r 中所有元素的按位异或,即 l1⊕l2⊕…⊕l2k=r1⊕r2⊕…⊕r2k。
可以证明,至少存在一组 l 和 r 满足条件。如果有多组解,你可以输出任意一组。
† 如果一个序列 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≤t≤5000),表示测试用例的数量。接下来是每组测试用例的描述。
每组测试用例的第一行包含两个整数 n 和 k(2≤n≤5⋅104,1≤k≤⌊2n⌋)。
第二行包含 2n 个整数 a1,a2,…,a2n(1≤ai≤n)。保证 a 中每个 1 到 n 的整数恰好出现两次。
保证所有测试用例中 n 的总和不超过 5⋅104。
输出格式
对于每组测试用例,输出两行。
第一行输出 2k 个整数 l1,l2,…,l2k。
第二行输出 2k 个整数 r1,r2,…,r2k。
如果有多组解,你可以输出任意一组。
输入输出样例
输入#1
4 2 1 1 2 2 1 6 1 6 4 2 1 2 3 1 6 3 5 5 4 4 1 1 2 3 4 1 2 3 4 6 2 5 1 3 3 5 1 2 6 4 6 4 2
输出#1
2 1 2 1 6 4 1 3 1 2 1 2 5 1 3 3 6 4 2 4
说明/提示
在第一个测试用例中,我们选择 l=[2,1],r=[2,1]。[2,1] 是 [a1,a2] 的一个子集,[2,1] 是 [a3,a4] 的一个子集,且 2⊕1=2⊕1=3。
在第二个测试用例中,6⊕4=1⊕3=2。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?