标签:
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