poj 2631 求樹上的最大距離 基礎題

2021-06-26 07:50:05 字數 478 閱讀 8842

求樹上的最大距離

方法:任選一點bfs,求出其他點到此點的最短距離,然後選取距離最大的點(此點為最長路的乙個端點)再做一次bfs,然後選取距離最大的點(此點為最長路的另外乙個端點)二者之間的距離即為樹上的最大距離。

code:

#include #include #include #include #define inf 1000000000

using namespace std;

const int maxn=10050;

const int maxe=40000;

struct edge

p[maxe];

int head[maxn],si;

int dis[maxn],que[maxe],nn;

void add_edge(int s,int t,int cc)

void bfs(int u)

POJ 2631 求樹的直徑

如何求樹的直徑我就不說了。ac此題後有兩點感悟 1.通過邊集來儲存圖 如何查詢 2.先想清楚再編碼,否則會一塌糊塗 poj 2631 mike w 2012 10 10 find the diameter of a tree include include include define maxsiz...

Poj2187 凸包求最大距離

凸包 暴力求解,注意n 0,和n 1的情況 include include include include include include include define maxn 50000 10 using namespace std typedef struct point point int ...

求樹上結點的兩兩距離和 DFS求解

對於一棵n個結點的樹,其n 1條邊有各自的邊權 長度 求樹上所有結點兩兩之間的距離和,即 i 1n 1 j i 1nd ista nce i,j sum sum distance i,j i 1 n 1 j i 1 n di stan ce i j 要求求一棵n個結點的樹上所有的任意兩點之間的距離和...