标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1301 Accepted Submission(s): 795
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #define N 14 using namespace std; int a[(1<<N)+1]; ///14位,最低位存0,2的14次方保存的是 100000000000000可以存15位,所以最大用到 2^14-1 int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF){ int t,num,k; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++){ scanf("%d",&t); k=0; for(int j=1;j<=t;j++){ scanf("%d",&num); k+=(1<<(num-1)); } a[k]=1; for(int j=1;j<=(1<<N);j++){ if(a[j]){ int next = k|j; a[next]=1; } } } int ans = 0; for(int i=1;i<=(1<<N);i++){ if(a[i]) ans++; } printf("%d\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/liyinggang/p/5405811.html