【Google Code Jam 2022】 Chain Reactions

简化题意

给你一棵树,每个点有权值,每次可以选择一个叶子节点,产生它到根节点路径上的最大权值的贡献,并把路径上所有点权值设为0,求最大总贡献。

题解

其实可以dp把,但是我们直接结论,考虑最优子结构。
对于一个点,我们考虑这个点如何产生贡献,一个点显然只能产生一次贡献,
我们考虑先求出其子树的最优答案,把他们加起来作为答案,现在加入根节点,考虑根节点可以让其中一颗子树的第一条链的最大值变成根节点

当选的那条链是贡献最小的链时候,根节点可以起到最大的作用,但是子树最优时,先选的链不一定是最小的。

猜测

posted @ 2022-04-05 19:57  ltdJcoder  阅读(57)  评论(0编辑  收藏  举报