最小路径覆盖:
该问题就是求一个边的集合的个数,集合满足下述条件:
1 集合之中不能有相交边,却是一个通路。
2 所有的集合中的边要覆盖所有的顶点。
3 集合个个数最少
注:求最小路径覆盖的前提是该图是有向无环图。所以answer=顶点数-最小覆盖的边数
该问题可以转化成二分匹配来做:
怎样构造二分图:
1 把一个顶点i划分成两个顶点Xi和Yi
2 如果顶点i到j可达,则Xi指向Yi
分析:
由于是有向无环图,所以每次匹配都不可能形成环,也就是不可能有两个不同的点
指向同一个点,这样每加进一条边,覆盖的点数就会多一个。最大匹配数就是最小覆盖的边数。