原题
题目大意
给定一颗n个结点的树,求出每个结点到离它最远的点的距离
分析
虽然每条边都有权值,但其本质并没有变化。
这个问题与求树的直径基本相似。
很容易想清楚,树上任意一个结点的最远点必然是树的直径的两个端点中的一个。
那么,这个问题就只需要三次dfs就能解决了。
第一个dfs,找到其中一个端点。
第二个dfs,以找到的一个端点为起点,找到另一个,并且顺便更新所有点到起点的距离。
第三个dfs,以另一个端点为起点,更新所有点的最远距离。
参考代码
|
|
吾生也有涯,而知也无涯
给定一颗n个结点的树,求出每个结点到离它最远的点的距离
虽然每条边都有权值,但其本质并没有变化。
这个问题与求树的直径基本相似。
很容易想清楚,树上任意一个结点的最远点必然是树的直径的两个端点中的一个。
那么,这个问题就只需要三次dfs就能解决了。
第一个dfs,找到其中一个端点。
第二个dfs,以找到的一个端点为起点,找到另一个,并且顺便更新所有点到起点的距离。
第三个dfs,以另一个端点为起点,更新所有点的最远距离。
|
|