#CF3846. 树木改造

树木改造

题目描述

光头强在花园里种了一棵有 nn 个顶点的树。一棵树是一个无向图,没有环、自环或多重边。这棵树中的每条边都有长度 kk。最初,顶点 11 是树的根。

光头强种树不仅是为了好玩,他还想把它卖掉。这棵树的价值定义为根节点到树中所有顶点的最大距离。两个顶点 uuvv 之间的距离是从 uuvv 路径上所有边的长度之和。

光头强学过园艺课程,所以知道如何修改树。他可以花费 cc 枚硬币将树的根移动到其相邻节点。此操作可以执行任意次数(可能为零)。请注意,树的结构保持不变;唯一的变化是根节点的编号。

光头强想以最大的利润出售树。利润定义为树的价值减去操作的总成本。

帮助光头强找到通过对树进行任意次数的操作(可能为零)可以获得的最大利润。

输入格式

输入的第一行包含一个整数 t(1t104)t(1≤t≤10^4)- 测试用例的数量。

接下来的每个测试用例的第一行包含整数 n,k,c(2n2105;1k,c109)n,k,c(2≤n≤2⋅10^5;1≤k,c≤10^9)- 树中顶点的数量,每条边的长度和操作的成本。

测试用例的下一个 n1n-1 行包含 ui,vi(1ui,vin)u_i,v_i(1≤u_i,v_i≤n)- 图的边。这些边形成一棵树。

所有测试用例中 nn 的值的总和不超过 21052⋅10^5

输出格式

对于每个测试用例,输出一个整数- 光头强可以获得的最大利润。

测试样例

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:11 为根,2323 为其儿子,初始利润为 22。如果改造,价值将变为 44,但是需要耗费 33 的代价,利润为 11

样例2:11 为根,最深的节点深度为 33,利润为 1212。修改后深度会变小。

样例3:11 为根,有 33 个儿子,分别为 456456,初始深度为 33,对应利润为 3×5=153×5=15。可以将根移动到 44 或者 55,这样深度变为 44,对应利润为 4×53=174×5-3=17

样例4:11 为根,有 3939 两个儿子。99 路径比较复杂,有两条路径探底:197641→9→7→6→419285101→9→2→8→5→10。最优方案为将根移动到 33,这样最大深度为 66,对应利润为 6×64=326×6-4=32

如果你老是 WA,想想有什么漏洞?