BZOJ 3687: 简单题 动态规划+bitset

数字很多,但是由于总和不超过 $2\times 10^6$,所以最多只能凑出来 $2\times 10^6$ 种算术和.  

由于这里是对算是和取异或,所以我们只需关注每种算术和出现次数的奇偶.   

由于奇奇 $\Rightarrow$ 偶,奇偶 $\Rightarrow$ 奇,偶偶 $\Rightarrow$ 偶,所以直接用 bitset 来加速就好了

#include 
#include  
#include 
#define N 2000007 
#define ll long long 
#define setIO(s) freopen(s".in","r",stdin)  
using namespace std;
bitsetf;  
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< 
 

  

你可能感兴趣的:(BZOJ 3687: 简单题 动态规划+bitset)