题解
2025-10-14 21:09:34
发布于:广东
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
const int N = 505;
vector<int> g[N];
int match[N];
bool st[N];
bool find(int x) {
for (int i = 0; i < g[x].size(); i++) {
int j = g[x][i];
if (!st[j]) {
st[j] = true;
if (!match[j] || find(match[j])) {
match[j] = x;
return true;
}
}
}
return false;
}
int main() {
int n, m, e;
cin >> n >> m >> e;
for (int i = 0; i < e; i++) {
int u, v;
cin >> u >> v;
g[u].push_back(v);
}
int res = 0;
for (int i = 1; i <= n; i++) {
memset(st, false, sizeof st);
if (find(i)) {
res++;
}
}
cout << res << endl;
return 0;
}
这里空空如也







有帮助,赞一个