Big Brother 二分图、最大匹配
Source
2015 UESTC Training for Graph Theory
My Solution
最大匹配问题 匈牙利算法, (似乎也可以用它的改进版,Hopcroft-Karp算法)
#include
#include
#include
#include
using namespace std;
const int maxn = 200 + 8;
int n;
vector g[maxn];
int from[maxn], tot;
bool use[maxn];
bool match(int x)
{
int sz = g[x].size();
for(int i = 0; i < sz; i++){
if(!use[g[x][i]]) {
use[g[x][i]] = true;
if(from[g[x][i]] == -1 || match(from[g[x][i]])) {
from[g[x][i]] = x;
return true;
}
}
}
return false;
}
int hungary()
{
tot = 0;
memset(from, 255, sizeof from);
for(int i = 1; i <= n; i++){
memset(use, 0, sizeof use);
if(match(i))
++tot;
}
return tot;
}
int main()
{
int N, M, S, x;
scanf("%d%d", &N, &M); n = N;
for(int i = 1; i <= n; i++){
scanf("%d", &S);
for(int j = 1; j <= S; j++){
scanf("%d", &x);
g[i].push_back(x);
}
}
printf("%d", hungary());
return 0;
}
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
https://www.prolightsfxjh.com/
Thank you!
------from ProLightsfx
- THE END -
最后修改:2024年11月16日
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
如经许可后转载,请注明出处:https://prolightsfxjh.com/article/uestc-1144-big-brother/
共有 0 条评论