最小路径覆盖问题

洛谷的提示给的很清楚了:设 $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):i\in V\}\cup\{(y_i,y_0):i\in V\}\cup\{(x_i,y_j):(i,j)\in E\}$$

为什么正确?

首先这是个$DAG$图,

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

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

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

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

posted @ 2019-02-12 22:14  AC-Evil  阅读(219)  评论(0编辑  收藏  举报