当前位置: 首页 > news >正文

# 二分图最大匹配

二分图最大匹配

匈牙利算法 \(\mathcal O(mn)\)

匈牙利算法二分图最大匹配如下图所示:

这时, 我们一个一个看
首先先匹配第一个
我们总是找对方能连上的第一个进行匹配

匹配上一个之后,再匹配第二个

...

匹配到第三个时,发生了一点小状况

可以看到,第一个和第三个撞了

这是难道要死了这条心吗 \(???\)

不,我们要向第一个发起挑战

我们要谨慎地询问1还有没有第二选择:

有,则横刀夺爱,无,则束手就擒。

匹配好的图如图所示

最大匹配数为 \(3\)


以下是代码

#include<bits/stdc++.h>using namespace std;struct Node{int to, nxt;
} ed[100010];int hd[100010], cnt;void add(int u, int v){ed[++ cnt] = {v, hd[u]};hd[u] = cnt;
}int n1, n2, m, ans;
bool has[1010];
int match[1010];int find(int u){for(int i = hd[u]; i; i = ed[i].nxt){int v = ed[i].to - n1;if(!has[v]){has[v] = 1;if(match[v] == 0 || find(match[v])){match[v] = u;return 1;}} }return 0;
}int main(){scanf("%d%d%d", &n1, &n2, &m);for(int i = 1; i <= m; i ++){int a, b;scanf("%d%d", &a, &b);add(a, b + n1);}for(int i = 1; i <= n1; i ++){memset(has, 0, sizeof has);ans += find(i);}printf("%d\n", ans);return 0;
}
http://www.rkmt.cn/news/58324.html

相关文章:

  • 33号远征
  • 解码TCP
  • 2025东莞最新数字人克隆厂商TOP5评测,客服数字人克隆 老板IP数字人克隆定制,全场景落地服务商行业口碑榜,专业选择指南。
  • P14225 [ICPC 2024 Kunming I] 左移 2 个人题解
  • PySpark - OneHotEncoder
  • .NET 10 中 C# 14 和 F# 10 的新情况
  • 题解:Luogu P14522 【MX-S11-T3】空之碎物
  • 1088. Rational Arithmetic (20)
  • 解码UDP
  • 2025中山办公场地租赁优选:中山西区金嘉创新港,一站式创业空间,赋能企业成长新机遇
  • 国产数据库替代MongoDB:政务电子证照新选择 - 教程
  • 读书笔记《投资的未来》,估算收益率
  • 使用代码查询快递信息的方法(与查询天气的方式雷同)
  • C++的3种继承方式
  • 1081. Rational Sum (20)
  • 1067. Sort with Swap(0) (25)
  • 1050. String Subtraction (20)
  • 1042. Shuffling Machine (20)
  • 1048. Find Coins (25)
  • 卡塔兰long long
  • 1039. Course List for Student (25)
  • 1031. Hello World for U (20)
  • 1021. Deepest Root (25)
  • Error: Internal Error: Sub-system: FDI_DATA——Cyclone 10 gx编译报错
  • 1016. Phone Bills (25)
  • 人工智能之数据分析 numpy:第二章 简介与安装
  • 1009. Product of Polynomials (25)
  • 1011. World Cup Betting (20)
  • 2025 年 11 月东北地区商业秘密保护服务权威推荐榜:覆盖沈阳、北京、吉林、辽宁、长春、黑龙江制造业、高新技术企业、化工企业、中小型企业、上市公司,专业护航企业核心竞争力
  • 1001. A+B Format (20)