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

题目已经说了是最大二分匹配题,
查了一下最大二分匹配题有两种解法,
匈牙利算法和网络流。
看了一下觉得匈牙利算法更好理解,
然后我照着小红书模板打了一遍就过了。
匈牙利算法:先试着把没用过的左边的点和没用过的右边的点连起来,
如果遇到一个点已经连过就试着把原来的拆掉 把现在这条线连起来看能不能多连上一条线。
总结来说就是试和拆,试的过程很简单,拆的过程由于使用递归写的,很复杂。很难讲清楚,只能看代码自己理会。
代码(有注释):
#include <bits\stdc++.h>
using namespace std;
typedef long long ll; //输入:
const int MAXN = ; // 数组长度
int n = ; //n表示左侧的点数
vector <int> g[MAXN]; // 表示与左边点i相连的右边点 //输出:
int from[MAXN];//表示最大匹配中与左边点i相连的边
int tot; // 二分图最大匹配数 bool use[MAXN]; // 左边点的使用标记 //匈牙利算法 模板题 ,match和hungary见小红书ACM国际大学生程序设计竞赛 算法与实现
bool match(int x){
for(int i = ;i < g[x].size(); ++i){
if(!use[g[x][i]]){
use[g[x][i]] = true;
if(from[g[x][i]] == - || match(from[g[x][i]])){
from[g[x][i]] = x;
return true;
}
}
}
return false;
} int hungary(){
tot = ;
memset(from,,sizeof(from));
for(int i = ;i <= n; i++){
memset(use,,sizeof(use));
if(match(i)) ++tot;
}
return tot;
} int main() {
int m;
cin >> n >> m;
int k1,k2;
cin >> k1 >> k2;
while(k1 != -||k2 != -){
g[k1].push_back(k2-n);
cin >> k1 >> k2;
};
cout << hungary() << endl;
return ;
}
模板:http://www.cnblogs.com/zhangjiuding/p/7538876.html
51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题的更多相关文章
- 51Nod 2006 飞行员配对(二分图最大匹配)-匈牙利算法
2006 飞行员配对(二分图最大匹配) 题目来源: 网络流24题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 第二次世界大战时期,英国皇家空军从沦陷国 ...
- 51Nod 2006 飞行员配对(二分图最大匹配)
第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员.在众多的飞行员中, ...
- (二分图最大匹配)51NOD 2006 飞行员配对
第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员.在众多的飞行员中, ...
- 51nod 2006 飞行员配对
第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员.在众多的飞行员中, ...
- 飞行员配对方案问题(匈牙利算法+sort)
洛谷传送门 匈牙利算法+sort 没什么好说的. ——代码 #include <cstdio> #include <cstring> #include <algorith ...
- 51Nod 2006 飞行员配对(二分图最大匹配)
链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2006 思路: 二分匹配 注意n m的关系 代码: #include ...
- luogu2756 飞行员配对方案问题 (裸匈牙利)
匈牙利: 4 81 51 62 53 53 74 54 74 8-1 -1 out:4 #include<iostream> #include<cstdio> #include ...
- poj3020 Antenna Placement 匈牙利算法求最小覆盖=最大匹配数(自身对应自身情况下要对半) 小圈圈圈点
/** 题目:poj3020 Antenna Placement 链接:http://poj.org/problem?id=3020 题意: 给一个由'*'或者'o'组成的n*m大小的图,你可以用一个 ...
- "《算法导论》之‘图’":不带权二分图最大匹配(匈牙利算法)
博文“二分图的最大匹配.完美匹配和匈牙利算法”对二分图相关的几个概念讲的特别形象,特别容易理解.本文介绍部分主要摘自此博文. 还有其他可参考博文: 趣写算法系列之--匈牙利算法 用于二分图匹配的匈牙利 ...
随机推荐
- 一步步带你做vue后台管理框架(一)——介绍框架
系列教程<一步步带你做vue后台管理框架>第一课 github地址:vue-framework-wz 线上体验地址:立即体验 在如今的科技公司中有很多前端的需求都是要写一个类似于后台管理框 ...
- beanshell postprocessor解决编码
beanshell postprocessor String s=new String(prev.getResponseData(),"UTF-8"); char ...
- Phpstorm中使用SFTP
Phpstorm中经常会出现FTP连接失败的问题,这个时候我们可以使用SFTP来连接服务器. 1.添加服务器.tools--deployment--configuration/browse Remot ...
- 转载 Java基本数据类型
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- JAVA实用案例之验证码开发
验证码在很多地方都会遇到,实现的方法和形式也有很多,主要的目的就是为了安全,防止一些恶意的攻击等.说实话那么多年竟然没注意过这东西,原理很简单,贴出来给大家做个参考. 1.简单介绍 一般稍微有些经验的 ...
- eclipse创建的maven项目无法部署到tomcat
今天在eclipse中创建了个maven项目,想运行起来看看,发现代码开发完成后无法发布到tomcat. 解决办法如下: 第一种: 选中项目-右键属性-Project Facets 勾选上面三项并选择 ...
- ios 初体验<窗口的创建>
1. 创建工程,这步很简单,百度下即可,在info.plist 里面 去掉 Main 的 ,便于新手练习ios,创建ios工程后,在AppDelegate.m,里面的方法application 加上几 ...
- js变量以及其作用域详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp73 一.变量的类型 Javascript和Java.C这些语言不同 ...
- ubuntu16.04下源码安装onos1.0.2
由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 L ...
- js 你所不知道的一面
你真的知道JavaScript吗 JavaScript是一门奇怪的语言,要真正掌握并不容易.废话不多说,来一个快速测试,5道题目,看看你对JavaScript是否真正掌握.准备好了吗?开始咯