题解 CF1901E Compressed Tree
令 $f_i$ 表示,子树 $i$ 中仍有最终未被删除的点的最大贡献。
转移有$$f_u=\max\left\{a_u,\max\limits_{v\in son_u} f_v,a_u+\max\limits_{k\ge 2,v_1,v_2,\cdots,v_k\in son_u}\sum f_v\right\}$$ 分别对应只保留 $u$,$u$ 被压缩和 $u$ 不被压缩三种情况。
考虑 $f_u$ 和答案的关系,我们钦定 $u$ 为根,有$$ans=\max\left\{a_u,a_u+\max\limits_{k\ne 2,v_1,v_2,\cdots,v_k\in son_u} \sum f_v,\max\limits_{v_1,v_2\in son_u}(f_{v_1}+f_{v_2})\right\}$$
分别对应只保留 $u$,$u$ 不被压缩和 $u$ 被压缩三种情况。
简化一下,即$$f_u=\max \left\{\max\limits_{v\in son_u} f_v,a_u+\max\limits_{k\ge 0,k\ne 1,v_1,v_2,\cdots,v_k\in son_u}\sum f_v\right\}$$$$ans=\max \left\{\max\limits_{v_1,v_2\in son_u}(f_{v_1}+f_{v_2}),a_u+\max\limits_{k\ge 0,k\ne 2,v_1,v_2,\cdots,v_k\in son_u}\sum f_v\right\}$$
分 $k=1,2$ 和 $k\ge 3$ 的部分贪心取即可。时间复杂度 $O(n)$。
因为可以删光,记得 $ans$ 与 $0$ 取 $\max$。

浙公网安备 33010602011771号