当前位置: 首页 > news >正文

hdu 1068 Girls and Boys 二分匹配

很标准的二分匹配,用的是匈牙利算法。

#include<iostream>
#include<string>

using namespace std;

int key[1000][1000],total,count;   //count是所有点能找到增广路径的    total是总人数

int ok[1000];      //记录右边所有的已经匹配的点,ok[i]=j右边第i个与左边第j个匹配
int rightt[1000];    //记录在一次递归中,右边各点是否已经匹配

int route(int );

int main()
{
    int a,b,c;
    string no;
    char m;

    while(cin>>total)
    {
        count=0;

        memset(key,0,sizeof(key));

        for(int i=0;i<total;i++)
        {
            cin>>a>>m>>m>>b>>m;

            for(int j=0;j<b;j++)
            {
                scanf("%d",&c);
                key[a][c]=1;
            }
        }
        memset(ok,-1,sizeof(ok));

        for(i=0;i<total;i++)          //每个点为起点,都找一次增广路径
        {
            memset(rightt,0,sizeof(rightt));

            if(route(i))
                count++;
        }

        cout<<total-count/2<<endl;
    }

    return 0;
}

int route(int i)
{
    for(int j=0;j<total;j++)
    {
        if(key[i][j]&&!rightt[j])       //j点在这次递归中,没有被访问过
        {
            rightt[j]=1;
            if(ok[j]==-1||route(ok[j]))
            {
                ok[j]=i;
                return 1;
            }
        }
    }
    return 0;
}


相关文章:

  • 穿越红尘不扰关,回旋天地去复还
  • The guide to implementing 2D platformers(2D动作游戏开发与实现)
  • 2D动作游戏开发与实现(翻译)
  • 关于在WP7的XNA开发模式中引入广告(Ad)
  • HTML5全球普及加速:预计将终结iOS与Android界限(转载)
  • 更改ubuntu的挂载点
  • 学习旅程——轻松快乐
  • ACM模板列表
  • LGame开始进行0.3.3正式发布前的最终代码整合
  • 最近的小问题
  • Android的手势识别GestureDetector
  • 父View禁用touch 如何让子view还能获取touch event
  • JAVA_OPTS参数-Xms和-Xmx的作用
  • 浅谈Java游戏引擎在智能机领域的发展
  • Java内存查看与分析
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Bytom交易说明(账户管理模式)
  •  D - 粉碎叛乱F - 其他起义
  • Invalidate和postInvalidate的区别
  • Java Agent 学习笔记
  • JAVA之继承和多态
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Theano - 导数
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 测试如何在敏捷团队中工作?
  • 从输入URL到页面加载发生了什么
  • 翻译:Hystrix - How To Use
  • 缓存与缓冲
  • 力扣(LeetCode)21
  • 小而合理的前端理论:rscss和rsjs
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 阿里云服务器购买完整流程
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (八)c52学习之旅-中断实验
  • (二十三)Flask之高频面试点
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (十一)手动添加用户和文件的特殊权限
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (小白学Java)Java简介和基本配置
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net CHARTING图表控件下载地址
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net Core和.Net Standard直观理解
  • .net 反编译_.net反编译的相关问题
  • .net 流——流的类型体系简单介绍
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @hook扩展分析