二分图
1|0二分图
定义
给一张无向图,可以把点分成两个不相交的非空集合,并且在同一集合的点之间没有边相连,那么称这张无向图为一个二分图。
二分图的判定
一张无向图是二分图,当且仅当图中不存在奇环。
2|0二分图最大匹配
“任意两条边都没有公共端点”的边集合被称为一组的匹配。
在二分图中包含边数最多的一组匹配被称为二分图的最大匹配。
对于任意一组匹配 (是一个边集),属于的边叫匹配边,匹配边的端点叫匹配点。
如果在二分图中存在连接两个非匹配点的路径,则称是的增广路。
增广路存在以下性质:
- 长度是奇数
- 路径上第是非匹配边,第是匹配边
所以对于一组匹配,把增广路上的边的状态全部取反,得到新的边集合,则也是一组匹配,且匹配变数多一。
所以二分图的一组最大匹配,当且仅当二分图中不存在的增广路。
匈牙利算法
算法流程
- 设
- 求增广路,把路径上边的状态取反得到新的匹配
- 重复第2步直到没有增广路
代码实现采用深搜,从出发寻找增广路,并且还回溯时把状态取反。
个点条的二分图,复杂度
3|0二分图的最小点覆盖
给一张二分图,求最小点集,使得图中任意一条边都至少有一个端点属于。
König定理
二分图最小点覆盖包含的点数等于二分图最大匹配包含的边数。
构造方法
- 求出二分图的最大匹配
- 从左部每个非匹配点出发,再执行一次 DFS 求增广路的过程(一定会失败),标记访问过的所有点
- 取左部未被标记的点、右部被标记的点,就得到了最小点覆盖。
4|0二分图最大独立集
给一张无向图,图的独立集就是任意两点之间没有边相连的点集,包含点数最多的独立集就是图的最大独立集。
任意两点之间都有一条边相连的子图被称作无向图的团,点数最多团就是图的最大团。
对于一般的无向图,最大团、最大独立集是 NP完全问题。
定理
无向图的最大团就是补图的最大独立集
定理
是个点的二分图,的最大独立集大小等于减去最大匹配数。
对于二分图去掉最小点覆盖,剩余的点就构成了二分图的最大独立集。
__EOF__

本文作者:PHarr
本文链接:https://www.cnblogs.com/PHarr/p/17774556.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
本文链接:https://www.cnblogs.com/PHarr/p/17774556.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
标签:
算法笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-10-19 河南十三届ICPC部分题解