HDU 1083 网络流之二分图匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1083 网络流之二分图匹配相关的知识,希望对你有一定的参考价值。

http://acm.hdu.edu.cn/showproblem.php?pid=1083

二分图匹配用得很多

这道题只需要简化的二分匹配

#include<iostream>
#include<cstdio>
#include<cstring>
#define maxm 410
using namespace std;
int p,n;
int master[maxm];
int linking[maxm][maxm];
int has[maxm];
int solve(int x)//x课
{
    int i;
    for(i=1;i<=n;i++)
    {
        if(linking[x][i]&&!has[i])
        {
            has[i]=1;
            if(!master[i]||solve(master[i]))
            {
                master[i]=x;
                return 1;
            }
        }
    }
    return 0;
}
int main()
{
    int m,sum=0;
    scanf("%d",&m);
    while(m--)
    {
        scanf("%d%d",&p,&n);
        memset(master,0,sizeof(master));
        memset(linking,0,sizeof(linking));
        for(int i=1;i<=p;i++)
        {
            int course;
            int student;
            scanf("%d",&course);
            for(int j=1;j<=course;j++)
            {
                scanf("%d",&student);
                linking[i][student]=1;
            }
        }
        for(int donser=1;donser<=p;donser++)
        {
            memset(has,0,sizeof(has));
            if(solve(donser)) sum++;
        }
        if(sum==p) printf("YES\n");
        else printf("NO\n");
        sum=0;
    }
    return 0;
}

 

以上是关于HDU 1083 网络流之二分图匹配的主要内容,如果未能解决你的问题,请参考以下文章

HDU - 1083 Courses (二分图最大匹配模板)

HDU1083 Courses —— 二分图最大匹配

HDU1083 :Courses(二分图匹配)

二分图的最大匹配(匈牙利算法)HDU1083

HDU1083(KB10-C 二分图最大匹配)

二分图目录