求出每一点到所有点的最大距离,刚开始就有点想法求最长边的问题,但想了一会不知道怎么去把子节点转化成根节点。
任选一点为根节点,先求出每个节点到子节点的最大距离和次大距离,然后更新每个子节点的最大,次大距离,就是把每个子节点当一次根节点,如果它在父节点的最大距离边上,就用次大距离+到父节点的距离与自己的最大次大距离比较,,,,
#include<stdio.h>
#include<string.h>
#define N 10001
int n,head[N],num,vis[N],dp[N][2];
struct edge
{
int st,ed,next,w;
}E[N*2];
void addedge(int ......
阅读全文