匈牙利算法模版(poj1469)

来源:互联网 发布:手机淘宝安全中心官网 编辑:程序博客网 时间:2024/05/29 19:15


#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int ss,n,p,match[509];bool a[509][509],use[509];bool dfs(int i) {if (use[i]) return false;use[i]=true;for (int j=1;j<=n;j++)if (a[i][j])if (!match[j]||dfs(match[j])){match[j]=i;return true;}return false;//勿忘}int work(){int ans=0;for (int i=1;i<=p;i++) //还是枚举p吧!枚举n会超时
{memset(use,false,sizeof(use));if (dfs(i)) ans++;}return ans;//勿忘}int main(){scanf("%d",&ss);while (ss--){memset(a,false,sizeof(a));memset(match,0,sizeof(match));scanf("%d%d",&p,&n);for (int i=1;i<=p;i++){int c,k;scanf("%d",&c);for (int j=1;j<=c;j++) scanf("%d",&k),a[i][k]=true;}if (work()==p)printf("YES\n");else printf("NO\n");}return 0;}


0 0
原创粉丝点击