1.dp (类似点分治)无法求出详细路径点,只能求出长度
d[x]代表以x为根的子树能到达的最远距离
void dp(int x){
v[x]=1;
for(int i=head[x];i;i=nex[i]){
int y=e[i];
if(v[y]) continue;
dp(y);
ans=max(ans,d[x]+d[y]+w[i]);
f[x]=max(f[x],f[y]+w[i]);
}
}
2.二次bfs
可以求出详细路径,但是无法求负权图