换根dp就是先任取一点为根,预处理出一些信息,然后在第二次dfs过程中进行状态的转移处理 本题难点在于任意割断一条边,求出剩下两棵子树的直径: 设割断的边为(u,v),设down[v]为以v为根的子树的直径长度,up[v]为u所在的子树的直径长度,那么down[v]就是很常规的子树直径的换根dp的求法,up[v]则要通过分情况讨论 第一种情况,组成up[v]的两条链,一条是u上方的链,一条是u下方且不属于子树v的链 第二种情况,组成up[v]的两条链都是u下方且不属于子树v的链 那么换根的过程中…