在分类讨论的时候,分三种情况,其中第三种,把编号3~n中的一棵树做根的情况只在n>=3的时候ans才与这种情况取max。
(讲的有点抽象,看看代码吧)
ans=max(far_x+dis_y,far_y+dis_x)+sum_d;
if(n>=3) ans=max(ans,dis_x+dis_y+mxd[r]-d[r]+sum_d);
//mxd[i]是第i棵树上距离最远的两个叶子的距离,d[i]是第i棵树上根到最远的叶子结点的距离,far_x是x到最远的叶子节点的距离,dis_x是根到x的距离,far_y和dis_y同理