最小路径覆盖问题

树上最小路径覆盖

不交路径覆盖

树形dp或者贪心。

可交路径覆盖

经典结论:叶子数量除以二上取整,贪心即可。

DAG最小路径覆盖

不交路径覆盖

现在有这样一个问题:给出一个DAG,求最少多少条不相交路径可以将其覆盖。

解决办法是建立这样一个图,对每个点拆点 \(x,x+n\) ,然后对于每条边 \((x,y)\) 连接 \((x,y+n)\) ,然后在新图上跑二分图最大匹配即可。

答案就是 点数-最大匹配个数 ,使用 \(dinic\) 可以做到 \(O(n\sqrt{m})\)

可交路径覆盖

利用 \(floyd\) 传递闭包跑出关系,按照传递闭包重新建图,转化为上一个问题。

posted @ 2022-01-05 15:13  __Anchor  阅读(114)  评论(0编辑  收藏  举报