【BZOJ】【P3687】【简单题】【题解】【bitset】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3687

和只有0..2000000中可能

压位记录

Code:

#include<bits/stdc++.h>
using namespace std;
bitset<2000001>bt;
int main(){
	int ans=0,n,x,sum=0;scanf("%d",&n);
	bt[0]=1;
	for(int i=1;i<=n;i++){
		scanf("%d",&x);sum+=x;
		bt=bt^(bt<<x);
	}for(int i=1;i<=sum;i++)ans^=bt[i]?i:0;
	cout<<ans<<endl;
}


你可能感兴趣的:(bzoj)