树的直径

非负权树贪心求树的直径:任意钦定一个根 \(r\),随便找一个距离 \(r\) 最远的点 \(u\) ,再以 \(u\) 为根找一个距离最远点 \(v\)\(u-v\) 即为直径。

证明考虑反证,按路径是否相交分类讨论。

1、直径两端点一定是两个叶子节点。

2、距离任意点最远的点一定是直径的一个端点。

3、对于两棵树,如果第一棵树直径两端点为 \((u,v)\) ,第二棵树直径两端点为$ (x,y) $,用一条边将两棵树连接,那么新树的直径一定是 \(u,v,x,y\),中的两个点。

证明:如果新树直径不是原来两棵树中一棵的直径,那么新直径一定经过两棵树的连接边,新直径在原来每棵树中的部分一定是距离连接点最远的点,即一定是原树直径的一个端点。

4、对于一棵树,如果在一个点的上接一个叶子节点,那么最多会改变直径的一个端点。

5、(对于非负权树?)若一棵树存在多条直径,那么这些直径交于一点且交点是这些直径的中点(令 \(f(x)=\max(dist(x,i))\) , \(f(x)\) 最小的点即为树的直径的必经点(直径的中点))。

posted @ 2021-09-12 12:15  Themaxmaxmax  阅读(82)  评论(0编辑  收藏  举报