二分图相关问题小结
2017-12-21 15:08
106 查看
从听课开始花了一天半时间来研究二分图有关的问题。
2、最大匹配
3、König定理与其他相关定理
4、最优匹配(最大权匹配)
判定:从任意一点开始进行黑白染色,出现矛盾则不是二分图。
算法:匈牙利算法,时间复杂度O(VE)。
算法思路:从每一个点开始找增广路,用dfs实现。
核心代码:
König定理:最小顶点覆盖=最大匹配。
证明:因为二分图的最大匹配涉及的边两两无关,所以至少要选择最大匹配数的顶点才能完成最小顶点覆盖。若还有一条边(u,v)没有被覆盖,那么显然这条边也是最大匹配中的边,结论成立。
其他定理:
最大独立集:选出一个点数最多的点集,使得这些点之间两两均无边连接。
最大独立集=节点数-最大匹配数。
最小边覆盖:用最少的边覆盖所有顶点。
最小边覆盖=最大独立集=节点数-最大匹配数。
最小路径覆盖:在DAG中选出最少的不交叉路径覆盖所有顶点。
将DAG转化为二分图,每个点拆成入点和出点两个点,对于一条路径(u,v),从u的出点连向v的入点即可。
同最小边覆盖。
剩余的最大团之类的后续填坑。
算法:KM算法,讲解见这里
bzoj4950
bzoj3140(好题)
此类问题一般都是比较难看出二分图的构图方式和模型,看出来了就比较简单解决。
bzoj2150
hdu1151
本质上都是一类问题。
bzoj4819
2、熟记套路,比如行列,男女,黑白等。
3、灵活运用,不能死磕模板。
【关键词】
1、二分图2、最大匹配
3、König定理与其他相关定理
4、最优匹配(最大权匹配)
一、二分图
概念:一个图G可以分成两个点集,使得仅这两个点集之间有边,点集内部没有连边。更严谨一点,没有奇环的图是二分图。判定:从任意一点开始进行黑白染色,出现矛盾则不是二分图。
二、二分图最大匹配
概念:求得一种匹配方案使得尽可能多的点仅与相对点集的另一个点有连边。算法:匈牙利算法,时间复杂度O(VE)。
算法思路:从每一个点开始找增广路,用dfs实现。
核心代码:
bool dfs(int x) { for(int i=0;i<edge[x].size();i++) { int nex=edge[x][i]; if(vis[nex]) continue; vis[nex]=1; if(!match[nex] || dfs(match[nex])) { match[nex]=x; return true; } } return false; }
三、König定理与其他相关定理
注:以下说法除特殊说明外均为二分图。König定理:最小顶点覆盖=最大匹配。
证明:因为二分图的最大匹配涉及的边两两无关,所以至少要选择最大匹配数的顶点才能完成最小顶点覆盖。若还有一条边(u,v)没有被覆盖,那么显然这条边也是最大匹配中的边,结论成立。
其他定理:
最大独立集:选出一个点数最多的点集,使得这些点之间两两均无边连接。
最大独立集=节点数-最大匹配数。
最小边覆盖:用最少的边覆盖所有顶点。
最小边覆盖=最大独立集=节点数-最大匹配数。
最小路径覆盖:在DAG中选出最少的不交叉路径覆盖所有顶点。
将DAG转化为二分图,每个点拆成入点和出点两个点,对于一条路径(u,v),从u的出点连向v的入点即可。
同最小边覆盖。
剩余的最大团之类的后续填坑。
四、最优匹配(又称最大权匹配)
概念:一个二分图,每条边有权值,求一个权值和最大的匹配。算法:KM算法,讲解见这里
相关题目
一、矩阵的行列匹配问题
bzoj1059bzoj4950
bzoj3140(好题)
此类问题一般都是比较难看出二分图的构图方式和模型,看出来了就比较简单解决。
二、定理题
最小路径覆盖
bzoj1143bzoj2150
hdu1151
本质上都是一类问题。
最小顶点覆盖
hdu1150三、最优匹配问题
bzoj1520bzoj4819
总结
1、二分图的模型一般隐藏的比较深,一定要仔细观察。2、熟记套路,比如行列,男女,黑白等。
3、灵活运用,不能死磕模板。
相关文章推荐
- 使用ddms调试android源码相关问题小结
- tomcat 5.X 的mysql DBCP配置指南及相关问题小结
- 二分图相关 小结
- 问题小结(6)-listview滚动条相关
- python 排列相关问题小结
- 书写论文相关问题小结
- SAE Java相关问题小结
- Selenimu运行脚本时遇到的与FF浏览器相关问题小结
- window.showModalDialog相关问题小结
- tomcat 5.X 的mysql DBCP配置指南及相关问题小结
- 算法导论:相关数学问题小结
- 二分图最大匹配相关问题
- Selenimu运行脚本时遇到的与FF浏览器相关问题小结
- JSP-相关注意点&amp;amp;常见问题的一点小结
- java日期时间相关问题小结
- php时间计算相关问题小结
- 二分图相关问题
- Java Web 开发中路径相关问题小结
- JAVA运行MYSQL的LOAD相关问题小结
- 贪心算法专题小结——区间相关问题