题目链接
https://codeforces.com/contest/1929/problem/E
题目大意
给定一颗 个结点的树,给定
条树上的路径 。现在要对树上的一些边染色,使得
条路径中的每一条路径上都至少有一条边被染色,问最少染多少条边。
数据范围
解题思路
考虑统计每一条边被那些路径覆盖,假设覆盖第 边的路径集合为 ,那就是要找到一个长度最短的序列 使得 。
我们联想到了状压 dp,但发现直接 dp 复杂度是 ,是行不通的。
因为路径条数非常少,我们可以猜测本质不同的集合 的个数跟 是一个级别的。
证明可以考虑建出这
个点的虚树,由于虚树上最多只有 个结点,
条边,所以最多只有
种本质不同的 。
有了上面的结论我们就可以直接 地 dp 了。
参考代码
https://codeforces.com/contest/1929/submission/246624331