DAG路径覆盖模型

概述

路径覆盖模型的特点是DAG中每个点经过且只经过一次,且一条路径覆盖路径上的所有点。

将每个点拆为\(x\)\(x'\),暂不考虑其实际意义。然后连边\(S\rightarrow x\)\(x'\rightarrow T\),对于原图中的边\(u\rightarrow v\),连边\(u\rightarrow v'\)

想象每个点本来都是独立的,若一个\(u\)\(v'\)相匹配,就说明一条路径经过了\(u\rightarrow v\)。这样每个点最多只会入和出一次。若求最大匹配则可以得到最多的边数,则最小路径覆盖就是\(n-最大匹配\)

应用

判定性问题

问能否用一条路径/若干环覆盖图。

判断最大匹配是否为\(n\)即可。

\(k\)起点路径覆盖

设有\(k\)的起点。建一个起点源\(Q\)\(S\rightarrow Q(k)\)\(Q\rightarrow x'\)。相当于k条路径从Q开始。与一般点不同的是\(Q\)没有\(Q'\),因此路径中间不能经过\(Q\)

任意起点路径覆盖

\(S\rightarrow x'\)

每个点至少经过一次

这个问题不在本节讨论范围内。每条原图中的边建为\(u\rightarrow v([1,\inf])\) ,用上下界最小流解。

最小费用路径覆盖

边上加费用即可。

Wf2015 Catering

另一种建模方法。

posted @ 2018-10-12 10:13  Utoрia  阅读(296)  评论(0)    收藏  举报