传送门 题目大意: 一棵无根树,每条边有一个距离,求每个顶点到距离其最远的顶点的距离. 思路: 考虑树形DP+换根. 令D[x]x到以x为根的子树当中的最长距离,d[x]为次长距离,U[x]为x向上走的最长距离,F[x]为x的答案. 第一次dfs以1为根可以很容易求出D[x]与d[x]. 之后第二次dfs对每个顶点去求最终的答案. 令p为父节点,v为当前节点,l为p到v的距离,于是有 F[x]=max(D[x],U[x]) 对于D[p] == D[v] + l的情况,说明p向下的最长距离可以从v…