本人认为如果有其他点未被匹配的优先匹配,可能可以使匈牙利算法跑得更快,实际上有好几个点 WA /kk
有谁能提供小一点的 hack 数据吗 qwq
code:
#include <bits/stdc++.h>
using namespace std;
const int N = 510;
int n, m, e, u, v, s, rev[N];
bool a[N][N], vis[N];
bool dfs (int u) {
for (int v = 1; v <= m; v++) {
if (a[u][v] && !vis[v]) {
vis[v] = true;
if (rev[v] == 0) {
rev[v] = u;
return true;
}
}
}
for (int v = 1; v <= m; v++) {
if (a[u][v] && !vis[v]) {
vis[v] = true;
if (dfs (rev[v])) {
rev[v] = u;
return true;
}
}
}
return false;
}
int main () {
cin >> n >> m >> e;
for (int i = 1; i <= e; i++) {
cin >> u >> v;
a[u][v] = true;
}
for (int i = 1; i <= n; i++) {
memset (vis, false, sizeof (vis));
if (dfs (i)) {
s++;
}
}
cout << s;
return 0;
}