#CF3846. 树木改造
树木改造
题目描述
光头强在花园里种了一棵有 个顶点的树。一棵树是一个无向图,没有环、自环或多重边。这棵树中的每条边都有长度 。最初,顶点 是树的根。
光头强种树不仅是为了好玩,他还想把它卖掉。这棵树的价值定义为根节点到树中所有顶点的最大距离。两个顶点 和 之间的距离是从 到 路径上所有边的长度之和。
光头强学过园艺课程,所以知道如何修改树。他可以花费 枚硬币将树的根移动到其相邻节点。此操作可以执行任意次数(可能为零)。请注意,树的结构保持不变;唯一的变化是根节点的编号。
光头强想以最大的利润出售树。利润定义为树的价值减去操作的总成本。
帮助光头强找到通过对树进行任意次数的操作(可能为零)可以获得的最大利润。
输入格式
输入的第一行包含一个整数 - 测试用例的数量。
接下来的每个测试用例的第一行包含整数 - 树中顶点的数量,每条边的长度和操作的成本。
测试用例的下一个 行包含 - 图的边。这些边形成一棵树。
所有测试用例中 的值的总和不超过 。
输出格式
对于每个测试用例,输出一个整数- 光头强可以获得的最大利润。
测试样例
4
3 2 3
2 1
3 1
5 4 1
2 1
4 2
5 4
3 4
6 5 3
4 1
6 1
2 6
5 1
3 2
10 6 4
1 3
1 9
9 7
7 6
6 4
9 2
2 8
8 5
5 10
2
12
17
32
样例说明
样例1: 为根, 为其儿子,初始利润为 。如果改造,价值将变为 ,但是需要耗费 的代价,利润为 。
样例2: 为根,最深的节点深度为 ,利润为 。修改后深度会变小。
样例3: 为根,有 个儿子,分别为 ,初始深度为 ,对应利润为 。可以将根移动到 或者 ,这样深度变为 ,对应利润为 。
样例4: 为根,有 两个儿子。 路径比较复杂,有两条路径探底:,。最优方案为将根移动到 ,这样最大深度为 ,对应利润为 。
如果你老是 WA
,想想有什么漏洞?