
树直径(Tree Diameter)
问题描述
给你一棵含 N 个顶点的带权无向树。第 i 条边(0≤i<N−1)双向连接顶点 ai 和 bi,边权为 ci。
请找出一对顶点 (u,v),使得它们之间的距离最远(即树的直径),并输出从 u 到 v 的路径。
约束条件
- 所有输入均为整数。
- 1≤N≤5×105
- 0≤ai,bi≤N−1
- ai=bi
- 1≤ci≤109
输入格式
N
a0 b0 c0
a1 b1 c1
:
aN−2 bN−2 cN−2
输出格式
X Y
u0 u1 … uY−1
其中:
- X 是路径上所有边权之和;
- Y 是路径上的顶点数量;
- ui 与 ui+1 是第 i+1 条被经过的边的两个端点(即路径顶点序列)。
8
0 1 5
1 2 3
2 3 1
1 4 2
4 7 4
1 5 7
2 6 5
15 4
6 2 1 5