#include<iostream>
#include<list>
#include<queue>
#define N 105
int n,m;
unsigned short ar[N];
int n_set;
int tmp;
unsigned short set[10000000];
unsigned short set_;
int idx;
int idx_n;
void creat_set(int dep)
{
if(dep>=n){
set[idx++]=set_;
return;
}
creat_set(dep+1);
set_|=ar[dep];
creat_set(dep+1);
set_^=ar[dep];
}
int main()
{
while (std::cin>>n>>m){
for(int i=0;i!=n;i++){
std::cin>>n_set;
for(int j=0;j!=n_set;j++){
std::cin>>tmp;
ar[i]=(ar[i])|(1<<(8-tmp+1));
}
}
creat_set(0);
std::sort(set,set+idx);
idx_n=1;
for(int i=2;i!=idx;i++){
if(set[i]!=set[i-1]){
idx_n++;
}
}
std::cout<<idx_n<<std::endl;
memset(ar,0,sizeof(ar));
memset(set,0,sizeof(set));
idx=idx_n=0;
}
}
HDU-3006The Number of set
最新推荐文章于 2020-05-14 22:41:50 发布