最小路径覆盖问题

洛谷的提示给的很清楚了:设 $V={1,2,...,n}$ ,构造网络 $G_1={V_1,E_1}$ 如下:

$$V_1={x_0,x_1,...,x_n}cup{y_0,y_1,...,y_n}$$

$$E_1={(x_0,x_i):iin V}cup{(y_i,y_0):iin V}cup{(x_i,y_j):(i,j)in E}$$

为什么正确?

首先这是个$DAG$图,

然后根据所构造的网络流中可得:如果有流通过,说明原图中有两条链能够首尾相连,从而减少了路径条数。

所以最后的答案为$n-maxflow$。

其实最小路径覆盖=最大匹配(这个很重要)

所以也可以用匈牙利算法解决。

原文地址:https://www.cnblogs.com/ac-evil/p/10367323.html