hdu 5650 so easy (异或)

时间:2020-12-10 10:02:42

hdu 5650 so easy (异或)

我们考虑集合中的每个数x对答案的贡献。 设集合有n个数,则包含x的子集个数有2^(n-1)个。 那么当n > 1时,x出现了偶数次,所以其对答案的贡献就是0;当 n = 1时,其对答案的贡献是 x。

AC代码:

 #pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<math.h>
#include<algorithm>
#include<queue>
#include<set>
#include<bitset>
#include<map>
#include<vector>
#include<stdlib.h>
#include <stack>
using namespace std;
#define PI acos(-1.0)
#define max(a,b) (a) > (b) ? (a) : (b)
#define min(a,b) (a) < (b) ? (a) : (b)
#define ll long long
#define eps 1e-10
#define MOD 1000000007
#define N 1006
#define inf 1e12
int n;
int a[N];
int main()
{
int t;
scanf("%d",&t);
while(t--){ scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
if(n>){
printf("0\n");
continue;
}
if(n==){
int sum = a[];
for(int i=;i<n;i++){
sum=sum^a[i];
}
printf("%d\n",sum);
}
}
return ;
}