标签:http col 算法 好用 二分图匹配 ons max names ==
复习二分图又想起了这道题,裸的二分图匹配,直接匈牙利算法就可以了,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; }
Tracer Deployment UVALive - 8271 二分图匹配
标签:http col 算法 好用 二分图匹配 ons max names ==
原文地址:https://www.cnblogs.com/fan-jiaming/p/9785998.html