【模板】匈牙利算法
2014-02-25 09:34
218 查看
#include<cstring> #include<vector> #define MAX_V 80 int V; //顶点数 int match[MAX_V]; //所匹配的顶点 bool used[MAX_V]; //DFS中用到 的访问标记 vector<int> G[MAX_V]; //图的邻接表表示 //向图中增加一条边接u和v的边 void add_edge(int u,int v) { G[u].push_back(v); G[v].push_back(u); } //通过DFS寻找增广路 bool dfs(int v) { used[v]=true; for(int i=0;i<G[v].size();i++) { int u=G[v][i],w=match[u]; if(w<0||(!used[w]&&dfs(w))) { match[v]=u; match[u]=v; return true; } } return false; } //求解二分图的最大匹配 int bipartite_matching() { int res=0; memset(match,-1,sizeof(match)); for(int v=1;v<=V;v++) { if(match[v]<0) { memset(used,false,sizeof(used)); if(dfs(v)) res++; } } return res; }
相关文章推荐
- 二分图最大匹配(匈牙利算法Dfs模板)
- POJ 3041 Asteroids | 匈牙利算法模板
- 【二分图匹配入门专题1】F - COURSES poj1469【最大匹配--匈牙利算法模板题】
- 【模板】二分图匹配/一般图匹配——匈牙利算法/随机匈牙利算法
- POJ 3041 Asteroids(最小顶点覆盖,匈牙利算法模板)
- [洛谷 3386]【模板】二分图匹配---匈牙利算法
- 匈牙利算法,二分图最大匹配、多重匹配模板
- 匈牙利算法模板 hdu 1068 题意不清。。。。(数据范围太过随意。。)
- 最大匹配之匈牙利算法模板。。
- 匈牙利算法模板 图的二分匹配 hdu 2063 过山车
- 常用的二分图模板 匈牙利算法
- HDU 2063 过山车(匈牙利算法模板)
- 匈牙利算法模板
- HDOJ 题目1083Courses(二分图匹配,匈牙利算法模板)
- 洛谷 3386 二分图匹配模板 匈牙利算法
- 匈牙利算法模板及解释
- 二分图匹配(匈牙利算法模板)
- 匈牙利算法模板 二分图最大匹配
- hdu 2063 过山车 (最大匹配 匈牙利算法模板)
- NYOJ 题目239 月老的难题 (二分图最大匹配-匈牙利算法模板)