本题是一棵带边权的树,有 N 个节点,每个节点有收益 gi,炸弹影响范围为 K。
如果炸弹放在节点 x,那么所有到 x 的路径距离不超过 K 的节点都会被摧毁,收益为这些节点收益之和。
由于树上任意两个节点之间路径唯一,可以枚举每个节点作为炸弹放置点,然后从该节点开始做一次 DFS,统计距离不超过 K 的所有节点收益。
核心步骤:
云小核正在玩爆破小游戏,游戏提供了一张地图,可以看成一棵树,地图上有很多节点,每个节点都有被爆破后的收益值,有些节点之间有边和距离。云小核手中有一颗炸弹,可以放置在任意一个节点上。这颗炸弹标定了影响范围,只要和放置炸弹节点的距离(路径上边的和)小于等于影响范围的节点,都会被爆破,云小核获得的收益值是所有被爆破节点收益值的总和。请你帮云小核选择一个炸弹放置点,使得云小核获得的收益最大。
如下图所示,当炸弹放置在节点2或节点3时,获得收益最大,为 500。

一个整型数值,表示获得的最大收益
输入
7 3
10 10 10 300 10 10 300
0 1 1
0 2 1
1 3 3
1 4 1
2 5 3
2 6 1
输出
640
说明

输入
5 2
200 100 250 100 100
1 0 20
0 2 20
3 1 2
4 1 2
输出
300
说明
