BZOJ 3687 简单题

bitset维护某个和是否存在。

bit<<x:所有子集的和+x。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
#define maxn 2000050
using namespace std;
bitset <maxn> bit;
int n,x,ans=,sum=;
int main()
{
scanf("%d",&n);bit[]=;
for (int i=;i<=n;i++)
{
scanf("%d",&x);
sum+=x;bit^=(bit<<x);
}
for (int i=;i<=sum;i++)
if (bit[i]) ans^=i;
printf("%d\n",ans);
return ;
}
上一篇:python sys.argv[]简单解释


下一篇:hihocoder-1453-Rikka with Tree