dfs
代码:
#include<iostream>
#include<fstream>
using namespace std;
int cow[1001];
int n,d,k;
int ans;
int b[16];
void solve(int s,int t,int p){
int i,j;
if(d-s+1<k-t) return;
if(t==k)
{
j=0;
for(i=1;i<=n;i++)
if(cow[i]==(cow[i]&p))
j++;
if(j>ans) ans=j;
return;
}
solve(s+1,t+1,p|(1<<(s-1)));
solve(s+1,t,p);
}
void read(){
// ifstream cin("in.txt");
int i,j,s,t;
cin>>n>>d>>k;
for(i=1;i<=n;i++)
{
cin>>t;
for(s=1;s<=t;s++)
{
cin>>j;
cow[i]|=1<<(j-1);
}
}
solve(1,0,0);
cout<<ans<<endl;
}
int main(){
read();
return 0;
}