HDOJ 1150 Machine Schedule解题报告
来源:互联网 发布:创业软件办公平台 编辑:程序博客网 时间:2024/06/05 21:50
用二分图的最大匹配来求解题目,关于其思想详见:http://blog.csdn.net/xinhanggebuguake/article/details/6668071
//#include<fstream>#include<iostream>using namespace std;const int MAX = 102;bool linkMap[MAX][MAX];int crossPath[MAX];bool used[MAX];int n, m;bool search(int u){for (int i=1;i<m;i++){if (linkMap[u][i]&&!used[i]){used[i]=1;//保证路径上无重复点出现if (crossPath[i]==-1||search(crossPath[i])){crossPath[i]=u;//①增广路径的取反return true;}}}return false;}int hungary(){int cnt = 0; memset(crossPath, -1, sizeof(crossPath));for(int i= 1; i<n; i++){memset(used,0, sizeof(used));if(search(i)) cnt++;}return cnt;}int main(){//ifstream cin("Machine Schedule.txt");int k;while(cin>>n,n){cin>>m>>k;memset(linkMap,false, sizeof(linkMap)); for(int i =0; i < k; i++) { int v1, v2; cin>>v1>>v1>>v2;if(v1&&v2)linkMap[v1][v2] = true; }cout<<hungary()<<endl;}return 0;}
总结与教训:
1、关于增广了路径的查找很多时候很纠结为什么这样实现。仔细分析不难发现,link本身就是存储了已有的增广路径,在①处的操作刚好就是取反的过程
- HDOJ 1150 Machine Schedule解题报告
- LA-2523 & POJ-1325 & HDOJ-1150 Machine Schedule 解题报告
- HDOJ 1150 Machine Schedule
- hdoj 1150 Machine Schedule
- HDOJ 1150 Machine Schedule
- hdoj 1150 Machine Schedule
- 【HDOJ 1150】Machine Schedule
- hdoj 1150 Machine Schedule
- hdu/hdoj 1150 Machine Schedule
- ACM HDOJ 1150 (Machine Schedule )
- HDOJ 1150 Machine Schedule 二分匹配
- Course Schedule解题报告
- HDOJ 题目1150 Machine Schedule(二分图最小点覆盖)
- hdoj--1150--Machine Schedule(最小点覆盖)
- HDOJ 1150 Machine Schedule (二分图最小点覆盖)
- poj 1325Machine Schedule解题报告-最小顶点覆盖等于最大匹配数
- [LeetCode]Course Schedule,解题报告
- 【LeetCode】Course Schedule 解题报告
- ext开发环境总结
- python 写的两种打印全排列的方法速度对比
- 用匈牙利算法求二分图的最大匹配
- 1732 隐藏的BUAA
- 1733 盒子工厂
- HDOJ 1150 Machine Schedule解题报告
- C [ OPENMP ]
- 1766 转义字符
- 正版系统与盗版系统的区别
- RGB888和565相互转换
- 什么是Struts2
- VB与SQL语句
- zoj 3179 - Calculate With Abacus
- C++ Programming/Optimization