传统弱校HFUT的蒟蒻,真相只有一个

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;
}
复制代码

 

posted @   未名亚柳  阅读(155)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示