二分图-最大匹配,最小路径覆盖,最小点覆盖
来源:互联网 发布:北大青鸟java视频教程 编辑:程序博客网 时间:2024/05/14 21:48
二分图:把点分成两个集合X,Y,使得图的边的两个端点总是分别落在X和Y上,不会有X中的点连向X中的点,不会有Y中的点连向Y中的点
匹配:实质上是二分图中的一个边集,边集中出现的点不会重合,比如有a-b了,就不会有a-c了,要是有了a就重合了
最大匹配:这个边集的数目最大的那个匹配
匈牙利算法——
增广路:一条在X和Y之间交错的路径,【这条路上一条是匹配边,一条不是匹配边】,如此相交错,
其中第一条和最后一条边不是匹配边,(所以增广路的长度一定为奇数,不是匹配边的数目比是匹配边的数目多1),
按matrix67的神说法,当我们把这条路上不是匹配边的那些换成要匹配的,原来是匹配的换成不要匹配的,匹配数就+1
所以当有增广路存在时说明匹配数可以再增大
二分图中最小点覆盖等于最大匹配数
最小点覆盖:实质是个点集,点集里面的点能覆盖所有的边,最小点覆盖就是满足这个要求的点集中点数最小的那个
证明:所有的边分为匹配的(A)边和不是匹配的边(B),最小点覆盖的点集就是要每条匹配的边两端顶点中的一个,
比如现在有x1-y1属于A,x1-y2属于B,对于x1-y1这条匹配边取x1而不取y1,这样就能覆盖到x1-y2,即B也能覆盖到
二分图中最小边覆盖=顶点数-最小点覆盖(最大匹配)
最小边覆盖:实质是个边集,这个集合里的边能覆盖所有的点,最小边覆盖是满足这个要求的所有边集中边数最少的一个
这里顶点数等于总的顶点数,是二分图两边的顶点数,不是一边
证明:设最大匹配数为m,总顶点数为n。为了使边数最少,又因为一条边最多能干掉两个点,所以尽量用边干掉两个点
也就是取有匹配的那些边,当然这些边是越多越好,那就是最大匹配了,所以先用最大匹配数目的边干掉大多数点
剩下的解决没有被匹配的点,就只能一条边干掉一个点了,设这些数目为a
显然,2m+a=n,而最小边覆盖=m+a,
所以最小边覆盖=(2m+a)-m=n-m
0 0
- 二分图-最大匹配,最小路径覆盖,最小点覆盖
- 二分图最大匹配,最小点覆盖,最小路径覆盖,二分图最大独立集
- 二分图最大匹配,最小路径覆盖,最小点覆盖,最大独立集,最小边覆盖与建图方法
- 二分图的最大匹配(最小路径覆盖,最小点覆盖)
- 浅显易懂二分图-最大匹配,最小路径覆盖,最小点覆盖
- 二分图最大匹配,点的最小覆盖,最小路径覆盖
- 二分图最大匹配,点的最小覆盖,最小路径覆盖
- 二分图-最大匹配,最小路径覆盖,最小点覆盖(KM算法)
- 最小点覆盖,最小边覆盖,最大匹配,最小路径覆盖,最大独立集总结。
- [最小路径覆盖、二分图最大匹配]Pku3020--Antenna Placement
- 最小路径覆盖-二分图最大匹配 poj 1422
- 最小路径覆盖(二分图最大匹配):Air Raid
- poj 2594 二分图最大匹配最小路径覆盖
- DAG最小路径覆盖与二分图最大匹配
- 网络流 最小路径覆盖 二分图最大匹配
- POJ 3692 最小点覆盖 最大二分图匹配
- hdu 1150 二分图 最小点覆盖=最大匹配
- poj 3041 二分图最大匹配(最小点覆盖问题)
- mac svn常用命令行
- 决策树(Decision Tree)
- 活性基因免疫靶向细胞疗法
- startActivityForResult 的使用
- FAILURE: Build failed with an exception.
- 二分图-最大匹配,最小路径覆盖,最小点覆盖
- git学习
- android AsyncTask介绍
- codevs--1026 逃跑的拉尔夫
- VS 操作 word 出错 解决方案
- 使用Gson反序列化Json数据失败,报错JsonSyntaxException: java.lang.IllegalStateException
- Android Base64编码解码
- Metasploitable2使用指南
- 复习一下两列布局。