最小路径覆盖问题
树上最小路径覆盖
不交路径覆盖
树形dp或者贪心。
可交路径覆盖
经典结论:叶子数量除以二上取整,贪心即可。
DAG最小路径覆盖
不交路径覆盖
现在有这样一个问题:给出一个DAG,求最少多少条不相交路径可以将其覆盖。
解决办法是建立这样一个图,对每个点拆点 \(x,x+n\) ,然后对于每条边 \((x,y)\) 连接 \((x,y+n)\) ,然后在新图上跑二分图最大匹配即可。
答案就是 点数-最大匹配个数 ,使用 \(dinic\) 可以做到 \(O(n\sqrt{m})\)。
可交路径覆盖
利用 \(floyd\) 传递闭包跑出关系,按照传递闭包重新建图,转化为上一个问题。