51nod2006 飞行员配对(二分图最大匹配)匈牙利算法
来源:互联网 发布:人工智能计算器电脑版 编辑:程序博客网 时间:2024/05/17 20:32
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 101 71 82 62 92 103 73 84 74 85 10-1 -1
Output示例
4
#include<cstdio>#include<iostream>#include<vector>#include<cstring>using namespace std;int ans;vector<int> h[1000];int n,m;int vis[12000];int p[10000];bool dfs(int x){for(int j=0;j<h[x].size();j++){int u=h[x][j];if(!vis[u]){vis[u]=1;if(!p[u]||dfs(p[u])){p[u]=x;return true;}}}return false;}int main(){ios::sync_with_stdio(0);int u,v;cin>>m>>n;while(cin>>u>>v){if(u==-1) break;h[u].push_back(v);}for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));if(dfs(i)) ans++;}if(ans) cout<<ans<<endl;else cout<<"No Solution!\n";return 0;}
阅读全文
1 0
- 51nod2006 飞行员配对(二分图最大匹配)匈牙利算法
- 51NOD2006 飞行员配对(二分图最大匹配)
- 51nod2006 飞行员配对(二分图最大匹配)
- 51Nod 2006:飞行员配对(二分图最大匹配,匈牙利算法)
- 51Nod-2006 飞行员配对(二分图最大匹配,匈牙利算法)
- 51Nod 2006 飞行员配对(二分图最大匹配) 匈牙利算法
- 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题
- 2006 飞行员配对(二分图最大匹配)
- 2006 飞行员配对(二分图最大匹配)
- 二分匹配的匈牙利算法 51NOD2006(文末)
- 51Nod-2006-飞行员配对(二分图最大匹配)
- 51nod 2006 飞行员配对(二分图最大匹配)
- 51NOD 2006 飞行员配对(二分图最大匹配)
- 51NOD-2006 飞行员配对(二分图最大匹配)
- 51nod 2006 飞行员配对(二分图最大匹配)
- 51nod 2006 飞行员配对(二分图最大匹配)
- 一、飞行员配对方案问题 [二分图的最大匹配]
- 飞行员配对方案问题(二分图的最大匹配)
- 2017-7-6 14:40(在家)
- Android四大组件之活动
- 详解Android动画之Tween Animation
- poj-1837
- spring配置文件xml文件开头总是有个红叉,是找不到schema文件
- 51nod2006 飞行员配对(二分图最大匹配)匈牙利算法
- NAT技术与代理服务器调研
- sort-list
- 短信验证码
- java创建文件夹不存在的文件
- 配置JAVA环境的时候,环境变量中administrator的用户变量和系统变量的区别?
- PHP中self和this的用法区别
- 流媒体开发的有用网址收藏
- =="和Equals的区别