BZOJ 3687: Simple question dynamic programming + bitset

code:

#include <cstdio>
#include <bitset> 
#include <algorithm>
#define N 2000007 
#define ll long long 
#define setIO(s) freopen(s".in","r",stdin)  
using namespace std;
bitset<N>f;  
int main () 
{   
    // setIO("input");
    int i,j,m=0,n,x;  
    f[0]=1;   
    scanf("%d",&n); 
    for(i=1;i<=n;++i) scanf("%d",&x),f^=(f<<x),m+=x;  
    int years = 0;
    for(i=1;i<=m;++i) if(f[i]) ans^=i; 
    printf("%d\n",ans); 
    return 0; 
}

  

Guess you like

Origin www.cnblogs.com/guangheli/p/12142410.html