标签:
#include<bits/stdc++.h> using namespace std; typedef long long ll; int a[41]; ll dp[3][(1<<20)+100]; int main() { int t,kase=1;scanf("%d",&t); while(t--){ memset(dp,0,sizeof(dp)); int n,m;scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); dp[0][0]=1; for(int i=1;i<=n;i++) for(int j=0;j<=(1<<20);j++) dp[i%2][j]=dp[(i-1)%2][j]+dp[(i-1)%2][j^a[i]]; // printf("%lld\n",dp[n%2][1<<20]); ll sum=0; for(int i=m;i<=(1<<20);i++) { sum+=dp[n%2][i]; if(dp[n%2][i]!=0); } // printf("%lld\n",dp[n%2][1<<20]); // for(int i=m+1;i<=30;i++) { printf("%lld ",sum); } printf("Case #%d: %lld\n",kase++, sum); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/a197p/article/details/48140415