树的直径
树的直径:树上最长的路径
即每个节点上 最长路径+次长路径 取max
vector<int>e[maxn];
int ans;
int dfs(int u,int fa){
int d1=0,d2=0;
for(int v:e[u]){
if(v==fa)continue;
int d=dfs(v,u)+1;
if(d>d1){
d2=d1;d1=d;
}else{
if(d>d2)d2=d;
}
ans=max(ans,d1+d2);
}
return d1;
}

浙公网安备 33010602011771号