DAG最小不可相交路径覆盖
将每个点拆成(x,x')
若(x->y)有边,则(x和y')连边。
最小不可路径覆盖=点数-二分图最大匹配
简略证明:
考虑一开始每个点自成一条路径,答案是n条路径。
每在二分图上完成一个匹配,则把两个点代表的路径合并成1条路径,路径数-1。
要路径数最少,所以匹配数要最大。
DAG最小可相交路径覆盖
将每个点拆成(x,x')
若(x)能到达(y),则(x和y')连边。
最小可路径覆盖=点数-二分图最大匹配
简略证明:
区别于不可相交路径覆盖,可相交路径让一个点作为中转点多次。
所以干脆传递闭包,这样就跨过了中转点。
二分图最小点覆盖:
最小点覆盖:选最少的点,使得每条边上的两个点有至少一个被选了。
最小点覆盖=最大匹配
简略证明:
先证明最大匹配可以对应一种顶点覆盖。
假设不能,说明有一条匹配边((x,y))都有连出去的非匹配边,那么就存在更大匹配,不合法。
由上面这个,同时可以得到小于最大匹配的匹配都不能做出顶点覆盖。
二分图最大独立集(最大团):
最大团=补图的最大独立集。
最大独立集=顶点数-最小点覆盖(最大匹配)
简略证明:
一个独立集的补集就是一个点覆盖。
要独立集最大,所以点覆盖要最小。