二分图基数最大匹配 匈牙利算法
来源:互联网 发布:python reduce表达式 编辑:程序博客网 时间:2024/05/30 05:01
二分图匹配主要是建图方法,有行列匹配法,黑白染色法,反建法,拆点法,拆行拆列法..
下面是poj 3041的代码,行列匹配...
//匈牙利算法,求二分图的最大基数匹配 //动态存边时间复杂度O(nm),矩阵的话时间复杂度O(n^3)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define maxv 1005vector<int> edge[maxv];int n,m,k;bool used[maxv];int match[maxv];void init(){ int i,l,r;// cin>>n>>m; memset(match,0,sizeof(match)); for(i=1;i<=n;++i) edge[i].clear(); for(i=0;i<k;++i) { cin>>l>>r; edge[l].push_back(r); }}bool GetAugPath(int s){ int i,t; for(i=0;i<edge[s].size();++i) { t=edge[s][i]; if(!used[t]) { used[t]=true; if(match[t]==0||GetAugPath(match[t])) { match[t]=s; return true; } } } return false;}int work(){ init(); int i,ans=0; for(i=1;i<=n;++i) { memset(used,0,sizeof(used)); if(GetAugPath(i)) ans++; }// cout<<"done"<<endl; return ans;}int main(){ int i,l,r; while(cin>>n>>k) { m=n; cout<<work()<<endl; } return 0;}
- 二分图基数最大匹配 匈牙利算法
- 匈牙利算法,二分图最大基数匹配(过山车,hdu 2063)
- 二分图最大匹配算法-匈牙利算法
- 二分图最大匹配(匈牙利算法)
- 最大二分图匹配(匈牙利算法)
- 最大二分图匹配(匈牙利算法)
- 二分图最大匹配之匈牙利算法
- 二分图最大匹配(匈牙利算法)
- 二分图最大匹配问题匈牙利算法
- 二分图最大匹配问题匈牙利算法
- 匈牙利算法 (二分图的最大匹配)
- 二分图最大匹配 - 匈牙利算法
- 二分图最大匹配(匈牙利算法)
- 二分图最大匹配—匈牙利算法
- 匈牙利算法(二分图最大匹配)
- 二分图最大匹配--匈牙利算法
- 二分图最大匹配的匈牙利算法
- 二分图最大匹配--匈牙利算法
- Spring事务配置的五种方法
- 粒子编辑器介绍_cocos2d-windows-particle-editor
- _makepath 和_splitpath
- MongoDB 索引
- Spring事务配置的五种方法(2)
- 二分图基数最大匹配 匈牙利算法
- nginx模块开发指南
- Mysql简介
- windows小技巧
- Mysql检索数据
- XEN blktap 框架源代码分析之tapdisk-ipc
- 用g++编译生成动态连接库*.so的方法及连接
- ubunut cron 日志不能启动
- 一些有用的linux命令和技巧