2006 飞行员配对(二分图最大匹配)
题目来源: 网络流24题
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一个算法找出最佳飞行员配对方案,使皇家空 军一次能派出最多的飞机 。对于给定的外籍飞行员与英国飞行员的配合情况,编程找出一个最佳飞行员配对方案, 使皇家空军一次能派出最多的飞机。

Input
第1行有2个正整数 m 和 n。n 是皇家空军的飞行 员总数(n<100);m 是外籍飞行员数。外籍飞行员编号为 1~m;英国飞行员编号为 m+1~n。接下来每行有 2 个正整数 i 和 j,表示外籍飞行员 i 可以和英国飞行员 j 配合。输入最后以 2 个-1 结束。
Output
第 1 行是最佳飞行 员配对方案一次能派出的最多的飞机数 M。如果所求的最佳飞行员配对方案不存在,则输出‘No Solution!’。
Input示例
5 10
1 7
1 8
2 6
2 9
2 10
3 7
3 8
4 7
4 8
5 10
-1 -1
Output示例
4
Johnson (题目提供者)

此题目参考了这篇博客,用到了匈牙利算法
匈牙利算法

#include<iostream>
#include<cstring>
using namespace std;
int m,n,a,b;
int line[101][101],location[200],sum=0;
bool used[200];
bool find(int x)
{for(int j=m+1;j<=n;j++){if (line[x][j]==true&&used[j]==false){used[j]=true;if (location[j]==0||find(location[j])){location[j]=x;return true;}}}return false;
}
int main()
{cin>>m>>n;while(1){cin>>a>>b;if(a==-1&&b==-1)break;line[a][b]=1;}for (int i=1;i<=m;i++){memset(used,0,sizeof(used));if (find(i))sum++;}if(sum==0)cout<<"No Solution!";elsecout<<sum;return 0;
}

51Nod-2006 飞行员配对(二分图最大匹配,匈牙利算法)相关推荐

  1. 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题

    题目: 题目已经说了是最大二分匹配题, 查了一下最大二分匹配题有两种解法, 匈牙利算法和网络流. 看了一下觉得匈牙利算法更好理解, 然后我照着小红书模板打了一遍就过了. 匈牙利算法:先试着把没用过的左 ...

  2. 2006 飞行员配对(二分图最大匹配)

    学习博客:https://www.cnblogs.com/fu3638/p/8784826.html 二分图匹配 基本概念: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附 ...

  3. 二分图最大匹配—匈牙利算法

    二分图:又叫二部图,图G中顶点集V可以分成互不相交的子集(X,Y),并且图中的每一条边所关联的点分别属于两个不同的顶点集,则图G叫二分图.(不含奇环) 二分图的匹配:给定一个二分图G的子图M,M的边集 ...

  4. 二分图最大匹配-匈牙利算法

    今天介绍 匈牙利算法 : 匈牙利算法,是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,由匈牙利数学家Edmonds于1965年提出,因而得名. 先介绍一下 ...

  5. 二分图最大匹配——匈牙利算法

    二分图最大匹配 (一).二分图的介绍 1.定义 2.充要条件 (二).二分图的匹配 1.二分图的最大匹配 2.增广路径 3.匈牙利算法 (1).复杂度 (2).算法思路 (3).代码实现 (一).二分 ...

  6. 二分图最大匹配 - 匈牙利算法

    问题描述: X集合(编号1~m),Y集合(编号m+1~n).n,m<100. 给出若干组合(x, y)(相当于映射x->y),问最都能同时有几个组合(分配). 分析: 题目可能简化描述得不 ...

  7. 二分图最大匹配(匈牙利算法Dinic算法)

    二分图最大匹配: 给出一个二分图,左边有若干个节点,右边有若干个节点,左边的节点想到匹配右边的节点,每个左边的节点每个都有若干个可以选择的对象,每个左边节点只能选择一个右边节点,每个右边节点也只能被选 ...

  8. NYOJ 题目239 月老的难题 (二分图最大匹配-匈牙利算法模板)

    月老的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘. 现在,由于一些原因,部分男孩与女孩可能结成幸福的一 ...

  9. 二分图最大匹配(匈牙利算法) POJ 3020 Antenna Placement

    题目传送门 1 /* 2 题意:*的点占据后能顺带占据四个方向的一个*,问最少要占据多少个 3 匈牙利算法:按坐标奇偶性把*分为两个集合,那么除了匹配的其中一方是顺带占据外,其他都要占据 4 */ 5 ...

最新文章

  1. 您不是订单管理的定向开发者_Web Summit 2020大会:华为在欧洲发布HMS Connect,持续助力合作伙伴与开发者的创新增长...
  2. PHP+ExtJS 文件上传示例
  3. [数据库] MySQL基础知识之日期判断及添加排序序号
  4. vs2010中MEX文件建立与调试
  5. Entity Framework 6 Recipes 2nd Edition(13-6)译 - 自动编译的LINQ查询
  6. MyBatis学习总结(7)——Mybatis缓存
  7. PAT乙级 1031 查验身份证 (15 分)
  8. Linux之父新年首次“炮轰”:英特尔在扼杀整个 ECC 行业
  9. 基础总结篇之四:Service完全解析
  10. android SpannableString使用详解
  11. 地图测量面积工具app_GPS地图测量尺
  12. 小米平板2wifi驱动下载_小米WiFi驱动官方下载_Xiaomi小米随身WiFi驱动官方最新版下载-华军软件园...
  13. 遥感原理与应用-基本概念
  14. 解决mac系统大小写切换异常问题
  15. DW个人网站设计 练习作业
  16. 中国新能源汽车电机及控制器行业需求态势与十四五方向分析报告2021年版
  17. 厂级监控系统镜像服务器,厂级监控信息系统(SIS).PDF
  18. Canvas绘制六边形网格
  19. 由C注释向C++注释转换简单实现
  20. Texi2Html中文输出版

热门文章

  1. JAVACV实现视频帧添加中文水印
  2. 函数概念 返回值 参数
  3. Springboot+Redis初体验
  4. pl/sql 变量的声明与赋值
  5. 传播力模型的初步探讨
  6. 拆读死胖子【普通人的第一桶金】
  7. Redisson 使用分布式锁出现 WRONGTYPE Operation against a key holding the wrong kind of value 错误
  8. 利用python爬虫可视化分析当当网的图书数据
  9. 拓嘉辰丰:拼多多店铺装修有哪几个部分
  10. 牛客小白月赛3 B.躲藏