树的直径指的是一棵树相隔最远的两个点的距离。
一开始我傻傻逼逼地用两次DFS做DP求QAQ。
第一次dfs求出某一点的离它最远点的编号及距离是多少,第二远的点编号及距离,它的父亲等一大堆数据。
第二次dfs进行转移。
麻烦的一匹QAQ
后来听大佬所才知道有更好的方法。。。
正题
这个方法好太多了QAQ
操作
一样是两次dfs。
随便找一个点$v$。
第一次dfs找到离这个最远的点$u_1$。
第二次dfs找到离点$u_1$最远的点$u_2$。
$u_1$与$u_2$的距离就是这棵树的直径。。。
证明
自己证去。。。
假设点$v$ 到$u_1u_2$这条路径最近的点为$k$