LeetCode/在树上执行操作以后得到的最大分数

发布时间 2023-11-05 16:07:31作者: 失控D大白兔

有一棵 n 个节点的无向树,节点编号为 0 到 n - 1 ,根节点编号为 0 。给你一个长度为 n - 1 的二维整数数组 edges 表示这棵树,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 有一条边。
同时给你一个长度为 n 下标从 0 开始的整数数组 values ,其中 values[i] 表示第 i 个节点的值。
一开始你的分数为 0 ,每次操作中,你将执行:

选择节点 i ,将 values[i] 加入你的分数,将 values[i] 变为 0 。
如果从根节点出发,到任意叶子节点经过的路径上的节点值之和都不等于 0 ,那么我们称这棵树是健康的 。
你可以对这棵树执行任意次操作,但要求执行完所有操作以后树是健康的 ,请你返回你可以获得的最大分数 。

1. 动态规划树