根据异或的性质可知,偶数个相同的数是没有影响的。之后就是简单dp了,但是,这道题可以用bitset这一神奇东西,当然得学习一下了。
#include<bits/stdc++.h>
#define N 2000010
using namespace std;
int n,x;
long long ans;
bitset <N> f;
int main()
{
freopen("in.txt","r",stdin);
scanf("%d",&n);f[0]=1;
for(int i=1;i<=n;i++)scanf("%d",&x),f=f^(f<<x);
for(int i=1;i<=N;i++)if(f[i])ans^=i;
printf("%lld",ans);
return 0;
}