Tracer Deployment UVALive - 8271 二分图匹配
2018-10-14 12:50
477 查看
复习二分图又想起了这道题,裸的二分图匹配,直接匈牙利算法就可以了,mark一下这个比较好用的稠密图匈牙利算法模板
题目:题目链接
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> #include <vector> #include <string> #include <queue> #include <map> #include <set> #define FRER() freopen("in.txt", "r", stdin); #define INF 0x3f3f3f3f using namespace std; const int MAXN = 25; int n, m, k; int g[MAXN][MAXN], num[MAXN]; bool vis[MAXN]; bool find(int); int hungury(); int main() { //FRER() ios::sync_with_stdio(0); cin.tie(0); int u, v; while(cin >> n && n) { cin >> m >> k; memset(g, 0, sizeof(g)); while(k--) { cin >> u >> v; g[u][v] = 1; } cout << hungury() << endl; } return 0; } bool find(int u) { for(int v = 0; v < m; ++v) { if(g[u][v] && !vis[v]) { vis[v] = true; //标记该点在本次匹配中已被尝试修改过 if(num[v] == -1 || find(num[v])) { num[v] = u; return true; } } } return false; } int hungury() { int ans = 0; memset(num, -1, sizeof(num)); for(int i = 0; i < n; ++i) { memset(vis, false, sizeof(vis)); if(find(i)) ++ans; } return ans; }
相关文章推荐
- UVALive 5903 Piece it together(二分图匹配)
- uvalive 6525——Attacking rooks(二分图匹配,好题!)
- UVALive 5033 I'm Telling the Truth 二分图匹配
- Tactical Multiple Defense System UVALive - 7008 二分图匹配
- UVAlive 6525 二分图匹配
- ACM->uvalive->Sentry Robots(二分图匹配的最小点覆盖)
- UVALive 4043 Ants(二分图匹配,最大匹配,4级)
- UVALive 3415 Guardian of Decency(二分图匹配,4级)
- UVALive-3523 Knights of the Round Table (双连通分量+二分图匹配)
- UVALive 5691 二分图匹配||陈老师的多校联合20140818 J题
- UVALive 5963 (LA 5963) Confusion in the Problem Set 二分图匹配 (或 YY)
- Uvalive3353 Optimal Bus Route Design 带权二分图匹配
- UVALive - 6039
- UVA355 UVALive5249 The Bases Are Loaded【进制】
- Huffman编码的不建树做法 UVALive 2088 Entropy
- UVALive 4080 Warfare And Logistics(Dijkstra+最短路树)
- UVALive 5717 Peach Blossom Spring(斯坦纳树 STNT)
- UVALive 7146 Defeat the Enemy贪心
- UVALive 3635 Pie 切糕大师 二分
- UVALive 6525 Attacking rooks 二分匹配 经典题