(1)二分图的最大匹配
匈牙利算法(可以用最大流做,但一般匈牙利要快不少)。
(2)二分图的最小点覆盖
二分图的最小点覆盖 = 二分图的最大匹配
(3)二分图的最少边覆盖
二分图的最少边覆盖 = 点数 - 二分图的最大匹配
(4)二分图的最大独立集
二分图的最大独立集 = 点数 - 二分图的最大匹配
(5)有向无环图的最少不相交路径覆盖
我们把原图中的点V拆成两个点Vx和Vy,对于原图中的边A−>B,我们在新图中连Ax−>By。
那么最少不相交路径覆盖=原图的点数-新图的最大匹配
(6)有向无环图的最少可相交路径覆盖
先用floyd求出原图的传递闭包, 如果a到b有路, 那么就加边a->b。 然后就转化成了最少不相交路径覆盖问题。
(7)有向无环图中最少不相交路径覆盖和最大独立集的相互转化
用偏序集,一般可以抽象为有向无环图。建议先看看这篇博客
Dilworth定理:有向无环图的最大独立集=有向无环图最少不相交路径覆盖
(8)二分图的带权最大匹配
KM算法。(可以用最小费用最大流做)