P3942&P2279&P2899&P2016
树上最小点覆盖的题目,如果范围为1,则贪心,dp都可以,否则只能用贪心(O(n)复杂度),但也有一些dp的影子。
设\(f_{i}\)为i的子树中最远的没被覆盖的点距离i的距离
\(g_{i}\)为i的子树中最远的驿站距离i的距离
考虑如何更新
如果\(f_{i}=k\) 那么i必须设立,不然往上这个点就再也覆盖不了了,同时将\(g_{i}\)设为0
如果\(f{i}+g{i}<=k\),那么就是说一棵子树中的驿站可以覆盖到另外的子树,所以\(f{i}=0\)
如果\(g_{i}>k\)所以\(f_{i}=max(f_{i},0)\)
然后转移就是\(f_{i}=max(f_{to})+1\)
\(g_{i}=max(g_{to})+1\)