一.结论:
1.最大匹配。
2.最小点覆盖:用最少的点去覆盖掉所有的边。最小点覆盖 = 最大匹配 。
3.最小边覆盖:用最少的边区覆盖掉所有的点,单独一个点可看作一条边。最小边覆盖 = 结点数 - 最大匹配。
4.最大独立集:选出尽可能多的点使得他们之间没有关系(没有边相连)。最大独立集 = 结点数 - 最大匹配。
5.最大团:选出尽可能多的点使得他们构成一个完全图。最大团 = 补图的最大独立集。
6.最小路径覆盖(有向图):选出最少的路径,使得每个点恰好在一条路径上,单独一个点可看作一条边。最小路径覆盖 = 结点数 - 最大匹配。
二.证明:
1.最小点覆盖 = 最大匹配:
König定理,不会。
2.最小边覆盖(ans) = 结点数(n) - 最大匹配(cnt)
证明:我们假设图中不存在边,那么每个点都要一条边去覆盖,所以总共要n条覆盖边。之后我们考虑原图中的边,利用Hungary()算法求出最大匹配数为cnt,这就表明了:有cnt个点,可以与其他点共用一条覆盖边,于是就可以除去cnt条覆盖边。所以最小边覆盖:ans = n - cnt 。
3.最大独立集(ans) = 结点数(n) - 最大匹配(cnt)
建图:如果u和v有关系,或者说有冲突,那么就在u和v之间连上边。
证明:最大独立集,即在在图中 删去尽可能少的点, 使得剩下的点互相独立,即没有边的存在。而我们又知道,最小覆盖点集覆盖掉了所有的边,当我们把这些点都删去了,就不存在边了。而又因为是“最小”覆盖点集,即删除了最少的点,因为得到了最大独立集。于是最大独立集:ans = n - cnt 。
4.最大团 = 补图的最大独立集
证明:最大团,即两两都有联系,那么它的补图,就是两两都没有联系。所以最大团即为补图的最大独立集。
5.(有向无环图DAG) 最小路径覆盖(ans) = 结点数(n) - 最大匹配(cnt)
建图:把每个结点u都拆成两个结点u和u'分于左右两边,其中左边的u为起点,右边的u'为终点,如果在图中有u-->v的边,则在建图时,连u-->v' 。
证明:我们假设图中不存在边,即没有路径,那么每个点都要一条路径去覆盖,所以总共要n条路径。之后我们考虑原图中的边,利用Hungary()算法求出最大匹配数为cnt,这就表明了:有cnt个点,可以接在其他结点得到后面,于是就可以除去cnt条路径。所以最小路径覆盖:ans = n - cnt 。
注意:最小路径覆盖于最小边覆盖是不同的,虽然公式一样,但是前提条件就不同了:首先最小路径覆盖是有向图,而最小边覆盖是无向图。其次,最小路径覆盖建图时需要拆点,而最小边覆盖只需直接建图。
三.对匈牙利算法的认知:
枚举二分图左边的每一个点,以此为出发点,看是否能找到增广路,即是否能找到右边的点为未匹配点,由于起始点也为未匹配点,所以在这条路径上,可以增加一对匹配点,怎么做呢?可知在这条增广路径上,匹配边和未匹配边交替出现,且未匹配边比匹配边多一条,所以我们就把未匹配边改为匹配边, 把匹配边改为未匹配边。这样,匹配数就+1了。
四.题型总结:
1.一种模型的图是明确的二分图,如:男与女、x坐标与y坐标、老师与学生等,属于两个不同类别的。在此,假定u为第一类别,v为第二类别,如果u和v相连,那么M[u][v]设为true,但特别要注意的是,不能也把M[v][u]也设置为true。因为数组第一维表示的是第一类别,第二维表示第二类别,所以不能理解为双向图,而应该理解为单向图。且二分图左边的点只能作为边的起点,二分图右边的点只能作为边的终点。 由于此类模型可以为单向图,所以所求得的最大匹配数无需除以2。
2.另一种模型的图则不是二分图,即一般图。这时候需要分情况讨论了:
1)如果图中不含有奇环(环内结点数为奇数),或者可以通过染色分成两部分(每一部分的结点之间没有联系),那么我们就可以把一般图当做二分图来求解:把每个点拆成两个点,其中一个点只作为出点,位于二分图的左边;一个点只作为入点,位于二分图的右边。注:如果题目是无向图,则应该双向建图,然后把得到的最大匹配数/2;如果是单向图,则建单向边,得到的最大匹配即为答案。
2)如果图中含有奇环,那么就只能用一般图匹配带花树来求解了。
五.题目类型:
1.最大匹配:
HDU1045 Fire Net
HDU2444 The Accomodation of Students
HDU1083 Courses
HDU1281 棋盘游戏
HDU2819 Swap
HDU2389 Rain on your Parade
HDU4185 Oil Skimming
POJ3020 Antenna Placement
2.最小点覆盖:
CSU-1531 Jewelry Exhibition
UVA11419 SAM I AM
HDU1054 Strategic Game
3.最小边覆盖:
POJ3020 Antenna Placement
4.最大独立集:
UVALive3415 Guardian of Decency
HDU3829 Cat VS Dog
5.最大团:
POJ3692 Kindergarten
6.最小路径覆盖:
UVALive3126 Taxi Cab Scheme
HDU1151 Air Raid
POJ2594 Treasure Exploratio
7.输出最小覆盖点集:
UVA11419 SAM I AM
8.一般图匹配带花树: