标签:
CoursesNO
//匈牙利算法 最大匹配==p
int ma[310][310]; int vis[310],link[310]; int n,m; bool Find(int x) { for(int i=1;i<=m;i++) { if(!vis[i]&&ma[x][i]) { vis[i]=1; if(!link[i]||Find(link[i])) { link[i]=x; return true; } } } return false; } int main() { int t; scanf("%d",&t); while(t--) { int p,q; scanf("%d%d",&n,&m); memset(ma,0,sizeof(ma)); memset(link,0,sizeof(link)); for(int i=1;i<=n;i++) { scanf("%d",&p); for(int k=0;k<p;k++) { scanf("%d",&q); ma[i][q]=1; } } int ans=0; for(int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if(Find(i)) ans++; } if(ans==n) printf("YES\n"); else printf("NO\n"); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/a73265/article/details/47379379