题意:
思路:
拆成二进制枚举 有哪个病毒在 判一判 就好了
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,d,k,jy,xx,a[1005],tmp[1005],ans;
int main(){
scanf("%d%d%d",&n,&d,&k);
for(int i=1;i<=n;i++){
scanf("%d",&jy);
while(jy--){
scanf("%d",&xx);
a[i]|=1<<(xx-1);
}
}
for(int i=0;i<(1<<d);i++){
int cnt=0,std=0,all=0;
for(int j=0;j<d;j++)
if(i&(1<<j))cnt++,std|=(1<<j);
if(cnt!=k)continue;
memcpy(tmp+1,a+1,n*4);
for(int j=1;j<=n;j++){
tmp[j]=(tmp[j]|std)-i;
if(!tmp[j])all++;
}
ans=max(ans,all);
}
printf("%d\n",ans);
}