>Link
luogu U137911
>Description
对于100%的数据,n<=2e5,v<=1e9,T<=3。
>解题思路
赛时想了好久才想出来QAQ,然后一不小心输入了n后面直接return了,然后就RE了QAQ
好 粗心啊
我们手动异或下就会发现
如果
a
⊕
b
=
c
a⊕b=c
a⊕b=c,那么就会有
c
⊕
b
=
a
c⊕b=a
c⊕b=a 和
c
⊕
a
=
b
c⊕a=b
c⊕a=b
按照题目将数分成两类,数互不相同且都是正整数(如果有0的话,0异或任何数等于任何数,那情况会跟这道题不一样,要讨论不包含0的那组的个数奇偶性),
假设有
a
i
⊕
b
j
=
a
t
a_i⊕b_j=a_t
ai⊕bj=at,那一定有
a
t
⊕
b
j
=
a
i
a_t⊕b_j=a_i
at⊕bj=ai,所以符合条件的数对是两两出现的,答案一定为0!
>代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 200010
using namespace std;
int T, n, a[N], b[N], ans;
void work ()
{
ans = 0;
scanf ("%d", &n);
for (int i = 1; i <= n; i++)
scanf ("%d", &a[i]);
for (int i = 1; i <= n; i++)
scanf ("%d", &b[i]);
printf ("0!\n");
return;
}
int main()
{
scanf ("%d", &T);
while (T--)
work ();
return 0;
}