作者自己瞎糊的。。。不保证准确。
本文中,树的边权均为正,否则结论不正确。
定义
树中最长的简单路径,可能有多个。很多时候也指这个路径的长度。
求法
树上DP
两遍 d f s dfs dfs瞎搞一通,第一遍求出每个节点向下走到儿子的最远距离,第二遍求出每个节点先走到父亲的最远距离。比下面的难写亿倍。
两遍dfs
从任意一点 p p p出发,找到最远点 q q q,再任找一个到 q q q的最远点 r r r,则 ( r , q ) (r,q) (r,q)为一条直径。
小性质&证明
从任意一点 p p p出发,找到最远点 q q q,则一定有一条直径经过点 q q q。考虑把树想象成圆,感性理解一下
证明:如上图,任取一条路径 ( a , b ) (a,b) (a