hdu 1150 二分图的最大匹配 hopcroft-karp算法
来源:互联网 发布:紫金银交易软件 编辑:程序博客网 时间:2024/06/06 04:35
///hopcroft-karp#include<iostream>#include<queue>#include<cstring>using namespace std;const int maxn = 200;const int inf = 65535;int Mx[maxn], My[maxn];bool vis[maxn];int g[maxn][maxn];int dx[maxn], dy[maxn];int n, m;int search(){ queue<int>q; int dis = inf; memset(dx, -1, sizeof(dx)); memset(dy, -1, sizeof(dy)); while(!q.empty()) q.pop(); for(int i=1; i<=n; i++){ if(Mx[i] == -1){ q.push(i); dx[i] = 0; } } while(!q.empty()){ int u = q.front(); q.pop(); if(dx[u] > dis) break; for(int v=1; v<=m; v++){ if(g[u][v] && dy[v] == -1){ dy[v] = dx[u] + 1; if(My[v] == -1){ dis = dy[v]; } else{ dx[My[v]] = dy[v] + 1; q.push(My[v]); } } } } return dis<inf;}int dfs(int u){ for(int v=1; v<=m; v++){ if(g[u][v] && !vis[v] && dy[v] == dx[u] + 1){ vis[v] = true; if(My[v] == -1 || dfs(My[v])){ My[v] = u; Mx[u] = v; return 1; } } } return 0;}int hungary(){ int ans = 0; memset(Mx, -1, sizeof(Mx)); memset(My, -1, sizeof(My)); while(search()){ for(int u=1; u<=n; u++){ memset(vis, false, sizeof(vis)); if(Mx[u] == -1){ if(dfs(u)) ans ++; } } } return ans;}int main(){ int k; while(cin >> n && n){ cin >> m >> k; memset(g, 0, sizeof(g)); int j, u, v; for(int i=0; i<k; i++){ cin >> j >> u >> v; g[u][v] = 1; } int ans = hungary(); cout << ans << endl; } return 0;}
0 0
- hdu 1150 二分图的最大匹配 hopcroft-karp算法
- 二分图最大匹配之Hopcroft-Karp算法
- 学习Hopcroft-Karp二分图最大匹配算法
- 二分图最大匹配算法-Hopcroft-Karp模板
- 二分图最大匹配hopcroft-karp算法——HDU 2389
- 【Hopcroft-Karp && 二分图的最大匹配数 && 有向图】HDU
- 【二分图匹配】Hopcroft-Karp算法模板
- 最大匹配的Hopcroft-Karp算法
- 二分匹配Hopcroft-Karp算法
- 利用匈牙利算法&Hopcroft-Karp算法解决二分图中的最大二分匹配问题
- 二分图匹配-Hopcroft-Karp
- hdu 2389 Rain on your Parade(二分图最大匹配,Hopcroft-Karp)
- Hopcroft-Karp算法模板(解决二分图最大匹配问题)
- POJ 1469二分图匹配Hopcroft-Karp算法
- hdu2389+二分匹配(Hopcroft-Karp算法)
- HDU 4185 Oil Skimming (最大匹配+匈牙利算法&Hopcroft-Karp算法)
- hdu 2389 Rain on your Parade(最大匹配,Hopcroft-Karp算法模版)
- HDU2389Rain on your Parade(二分图最大匹配之Hopcroft-Karp)
- hive中order by、distribute by、sort by和cluster by的区别和联系
- NOIP 2013 火柴排队
- CSS中星号(*)影响的样式继承性问题
- 转利用_DATE_和_TIME_宏在keil中添加编译日期和时间到C51程序中
- First Blood By Now
- hdu 1150 二分图的最大匹配 hopcroft-karp算法
- 微信公众号开发_ReceiveXmlProcess的代码(九)
- 在Kisso里,找出的防SQL注入 - 过滤 XSS SQL 注入
- Swift 学习笔记 UITableView (二)Overview of the table View API
- HDFS小文件处理及解决方案
- PoEdu_23_数组与指针
- C语言公共基础知识(1)
- Ext ajax传参中文乱码
- 数据库查询语句(exists)