简要题意:
多组数据。每组数据给定一棵树,求离每个节点最远的节点的距离。
显然 n ≤ 1 0 4 n \leq 10^4 n≤104 不能用 O ( n 2 ) O(n^2) O(n2) 的爆搜解决。我们考虑优化。
在求树的直径时,我们深搜的做法是:
-
从任意的节点出发找到最远的节点 x x x, x x x 作为直径一端。
-
从 x x x 节点出发找到最远的节点 y y y, x → y x \rightarrow y x→y 即为直径, y y y 作为直径另一端。
“任意节点” 即保证:
离一个节点最远的点,只会是直径的两个端点。
那么,我们只需要求出直径的两个端点到每个点的距离,然后