poj 1985 樹的直徑

2021-06-22 18:21:24 字數 626 閱讀 1993

題意:求樹的直徑。樹的直徑即樹上距離最遠的兩個點之間的距離

思路:以任意點開始深搜,得到距離其最遠的點;再以求得的點開始深搜,再次搜得的最遠距離即為樹的直徑

#include #include #define n 100005

struct edgee[n*2];

int first[n],flag[n],top,max;

int n,m;

void init()

void add(int x,int y,int w)

void dfs(int i)

}int main()

dfs(1);

for(i = 2;i<=n;i++)

if(flag[i] > flag[max])

max = i;

memset(flag,0,sizeof(flag));

dfs(max);

max = 1;

for(i = 2;i<=n;i++)

if(flag[i] > flag[max])

max = i;

printf("%d\n",flag[max]);

} return 0;

}

poj1985 樹的直徑

題意求樹的直徑,直接貼 include include include include include using namespace std typedef struct edge edge edge 100050 開50000會wa int head 50000 e int dis 50000 ...

POJ 1985 樹的直徑

傳送門 給一顆n個點的樹,求樹的直徑 最長的一條鏈 先隨便找乙個點u,dfs出離它最遠的點v 於是有以下情況 只需要從v再進行一邊dfs,便可以求出直徑。include include include includeusing namespace std int n,m int adj 50005 ...

poj4607 樹的直徑)

題目 park visit 題意 乙個人去公園,想走k個景點,問最短的距離。思路 求出樹的直徑 最長的鏈 最長路徑 從任意點a,找到離a最遠點b。再找到離b最遠點c,bc就是最長路徑。如果k include include include include include include includ...