二分图学习笔记
定义
点数量 2
没有奇环
二分图染色
深搜,0和1两种,相邻染不一样颜色,如果最后有冲突就不是二分图。
二分图匹配
定义
没有
条边公用 个点
极大匹配
无法通过加边的方式增加匹配的数量
最大匹配
边数最多的极大匹配
完全匹配
没有孤立点的匹配
匈牙利算法
枚举每一个左部点
,然后枚举该左部点连出的边,对于一个出点 ,如果它没有被先前的左部点匹配,那么直接将 匹配 ,否则尝试让 的“原配”左部点去匹配其他右部点,如果“原配”匹配到了其他点,那么将 匹配 ,否则 失配。 时间复杂度
增广路
找一个匹配,匹配中的点是匹配点,其余为非匹配点。
从左半部分的一个非匹配点开始走,沿非匹配边->匹配边->非匹配边->匹配边……走下去。
一个图的最大匹配等价于不存在增广路径。
最小点覆盖
从图中选出最少的点,覆盖图中所有的边。使每条边的两个端点至少有一个在最小点覆盖的集合中。
Kőnig 定理:最小点覆盖 = 最大匹配数
找增广路径,最小点覆盖的点集就是左半部分里经过的点和右半部分里未经过的点
最大独立集
最大独立集
从一个图中选出最多的点,使选出的点之间没有边。
最大团
从一个图里面选最多的点,使选出的点之间都有两两有边。
性质
设一个图为 G ,其补图为 G' ,那么 G 的最大独立集就是 G' 的最大团
对于一个图而言,最大独立集+最小点覆盖集构成原图的点集
最小路径点覆盖
在一个DAG中,用最少条互不相交的路径(没有重复点的路径)覆盖所有点。
最小路径点覆盖=总点数-最大匹配数
结论
最大匹配数=最小点覆盖=总点数-最大独立集=总点数-最小路径点覆盖
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步