欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

图的匹配

发布时间:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 图的匹配 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

定义见:OI-Wiki 图的匹配 。

二分图

解法 \(1\) :网络流(通用)

二分图最大匹配可以转换成最大流(费用流)模型 。

如果使用 \(\operatorname{Dinic}\) 算法求该网络的最大流,复杂度\(O(\sqrt{n}m)\)

具体代码见博客文章网络流 。

解法 \(2\) :匈牙利算法(一般只适合求二分图最大匹配)

即不断寻找增广路,遍历二分图,最坏复杂度为 \(O(nm)\)

P3386 【模板】二分图最大匹配 :

核心代码:

bool dfs(int x) {for(int i=hea[x];i;i=nex[i]) if(!vis[ver[i]]){vis[ver[i]]=true;if(!match[ver[i]] || dfs(match[ver[i]])){match[ver[i]]=x; return true;}}return false; }for(int i=1;i<=n;i++) {memset(vis,false,sizeof(vis));if(dfs(i)) ans++; }

CF1139E Maximize Mex

参考

性质:

二分图最大独立集

选最多的点,满足两两之间没有边相连。

二分图中,\(\text{最大独立集} = n - \text{最大匹配}\)

二分图最小点覆盖

选最少的点,满足每条边至少有一个端点被选,不难发现补集是独立集。

二分图中,\(\text{最小点覆盖} = n - \text{最大独立集}\)


一般图

咕咕咕~

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的图的匹配的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。