树的直径即树上最长的一段路径,寻找它可以在O(n)内完成。
首先以任意一点为根做bfs,找到离根最远的点,它一定是直径的两点之一,再以它为根找最远的点,即直径的另一点。证明过程反证法即可。
https://ac.nowcoder.com/acm/contest/884/A
1 |
|
树的直径即树上最长的一段路径,寻找它可以在O(n)内完成。
首先以任意一点为根做bfs,找到离根最远的点,它一定是直径的两点之一,再以它为根找最远的点,即直径的另一点。证明过程反证法即可。
https://ac.nowcoder.com/acm/contest/884/A
1 | #include<bits/stdc++.h> |