code1167 樹網的核

2022-08-20 13:39:11 字數 663 閱讀 3369

floyd+列舉

看點:1.floyd同時用陣列p記錄轉移節點k,這樣知道線段的端點u v就可以得到整條線段

2.任意一點c到線段a b的距離=(d[a][c]+d[c][b]-d[a][b])/2

3.列舉直徑st en的所有子線段a b:

for(int a=en;a;a=p[st][a])

for(int b=a;b;b=p[st][b])

**:

#include#include

#define size 305

using

namespace

std;

intn,s;

int num=0

;int ans=0x3f3f3f3f

;int

d[size][size];

intp[size][size];

struct

pathg[size*size];

int cnt=0

;int

main()

for(int k=1;k<=n;k++)}}

}for(int i=1;i<=n;i++)}}

for(int i=1;i<=cnt;i++)

ans=min(ans,dis);}}

}cout

}

樹網的核(codevs 1167)題解

設t v,e,w 是乙個無圈且連通的無向圖 也稱為無根樹 每條邊到有正整數的權,我們稱t為樹網 treebetwork 其中v,e分別表示結點與邊的集合,w表示各邊長度的集合,並設t有n個結點。路徑 樹網中任何兩結點a,b都存在唯一的一條簡單路徑,用d a,b 表示以a,b為端點的路徑的長度,它是該...

樹網的核 有關樹的直徑

輸入樣例 1 5 2 1 2 5 2 3 2 2 4 4 2 5 3 輸出樣例 1 5輸入樣例 2 8 6 1 3 2 2 3 2 3 4 6 4 5 3 4 6 4 4 7 2 7 8 3 輸出樣例 2 5n 500000 分析為了方便,st,ed表示直徑兩端的兩個點 首先來看樹的核是乙個點的情況...

O N 的我不會 樹網的核

題目描述 設t v,e,w 是乙個無圈且連通的無向圖 也稱為無根樹 每條邊帶有正整數的權,我們稱t為樹網 treenetwork 其中v,e分別表示結點與邊的集合,w表示各邊長度的集合,並設t有n個結點。路徑 樹網中任何兩結點a,b都存在唯一的一條簡單路徑,用d a,b 表示以a,b為端點的路徑的長...