#include<bits/stdc++.h>
using namespace std;
int n;
int m[1000][1000],girl[1000],used[1000];
int find(int x){
int j;
for(j=0;j<n;j++){
if(m[x][j]&&!used[j]){
used[j]=1;
if(girl[j]==0||find(girl[j])){
girl[j]=x;
return 1;
}
}
}
return 0;
}
int main(){
int a,b,i,j,num;
while(scanf("%d",&n)!=EOF){
memset(m,0,sizeof(m));
for(i=1;i<=n;i++){
scanf("%d: (%d)",&a,&num);
for(j=0;j<num;j++){
scanf("%d",&b);
m[a][b]=1;
}
}
int ans=0;
memset(girl,0,sizeof(girl));
for(i=0;i<n;i++){
memset(used,0,sizeof(used));
if(find(i))ans++;
}
printf("%d\n",n-ans/2);
}
return 0;
}
HDU 1068 Girls and Boys
最新推荐文章于 2022-05-18 13:07:05 发布