#3687. 简单题
内存限制:512 MiB时间限制:10 Sec
题目描述
输入格式
输出格式
样例
数据范围与提示
题解:
自己异或两次的话就没有了。。。。。
异或背包 , bitset优化一下;
复杂度: $O(frac{n sum a_{i} } {64} $
反正bitset的复杂度比较玄学吧。。。。。。。。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<queue> 6 #include<cmath> 7 #include<vector> 8 #include<stack> 9 #include<map> 10 #include<set> 11 #include<bitset> 12 #define Run(i,l,r) for(int i=l;i<=r;i++) 13 #define Don(i,l,r) for(int i=l;i>=r;i--) 14 #define ll long long 15 #define ld long double 16 #define inf 0x3f3f3f3f 17 using namespace std; 18 int n; 19 bitset<2000100>f; 20 int main(){ 21 freopen("in.in","r",stdin); 22 freopen("out.out","w",stdout); 23 scanf("%d",&n); 24 int x , sum=0; 25 //f.reset(); 26 f[0]=1; 27 Run(i,1,n){ 28 scanf("%d",&x); 29 f^=f<<x; 30 sum += x; 31 } 32 int ans=0; 33 Run(i,1,sum){ 34 if(f[i])ans^=i; 35 } 36 cout<<ans<<endl; 37 return 0; 38 }//by tkys_Austin;