有向无环图(DAG)的最小路径覆盖

以下均只针对有向无环图

1.最小不相交路径覆盖(不同的路径不能经过相同的点)

将原图中的点 i 成两部分 Xi Yi,若i 到 j 存在一条边,则连接 Xi -> Yj ,这样就得到了一个二分图, 最后

原图中的 最小不相交路径覆盖数 = 原图节点数 - 新图中的最大匹配数

 

2.最小可相交路径覆盖(不同的路径可以经过相同的点)

对于原图跑一遍floyd,如果a可以到达b,那么加边a->b,即可以转化成最小不相交路径覆盖问题。

posted @ 2018-09-13 19:52  OFFBYONEBUG  阅读(472)  评论(0编辑  收藏  举报