#P17395. [ICPC 2018 Shenyang R] Diameter of a Tree

    ID: 19676 远端评测题 14000ms 512MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>2018二分点分治分治树的直径凸包ICPC闵可夫斯基和 Minkowski sum

[ICPC 2018 Shenyang R] Diameter of a Tree

题目描述

给定一棵带权树 T0T_0,我们将其直径定义为树上两顶点之间最长路径的长度,其中一条路径的长度等于该路径上所有边的权重之和。

如果这棵树像蜘蛛一样伸展,或者像打哈欠的老虎一样舒展,它的直径也会随之变化。我们用 TiT_i 表示经过 ii 秒后树的状态,此时每条边的权重相比于 T0T_0 都恰好增加了 ii 个单位。

你将会面对若干不同的查询,对每次查询,你都需要计算在某个指定时刻这棵树的直径。

输入格式

输入包含多组测试数据,第一行包含一个正整数 TT,表示测试数据的组数,最多不超过 6060

对于每组测试数据,第一行包含两个整数 nnmm,分别表示树中顶点的个数和给定查询的个数,满足 2n2×1052 \le n \le 2 \times 10^51m2×1051 \le m \le 2 \times 10^5

接下来的 (n1)(n - 1) 行,每行包含三个整数 u,vu, vww,表示原树中连接第 uu 个顶点和第 vv 个顶点的一条权重为 ww 的边,满足 1u,vn1 \le u, v \le nuvu \ne v1w1081 \le w \le 10^8

接下来的 mm 行,每行描述一个查询,包含一个整数 kk,要求你计算树 TkT_k 的直径,满足 0k1090 \le k \le 10^9

我们保证所有测试数据中 nn 的总和不超过 10610^6mm 的总和也不超过 10610^6

输出格式

对于每组测试数据,首先输出一行包含 “Case #x:”(不含引号),其中 xx 是测试数据的编号,从 11 开始。

然后输出 mm 行与所有查询对应,其中第 ii 行包含一个整数,表示对第 ii 个查询的答案。

2
3 3
1 2 1
1 3 5
5
10
100
5 6
1 2 100
2 3 5
2 4 1
4 5 1
0
1
2
3
4
5
Case #1:
16
26
206
Case #2:
105
107
109
111
114
117

提示

在第二个样例中:

  • T0T_0 的直径为 105105,是路径 1231 - 2 - 3 的长度;
  • T5T_5 的直径为 117117,是路径 12451 - 2 - 4 - 5 的长度。

翻译由 DeepSeek V4 Pro 完成