树网的核(codevs 1167)
【問題描述】
設(shè) T=(V, E, W) 是一個(gè)無圈且連通的無向圖(也稱為無根樹),每條邊帶有正整數(shù)的權(quán),我
們稱T 為樹網(wǎng)(treenetwork),其中V, E分別表示結(jié)點(diǎn)與邊的集合,W 表示各邊長度的集合,
并設(shè)T 有n個(gè)結(jié)點(diǎn)。
路徑:樹網(wǎng)中任何兩結(jié)點(diǎn)a,b 都存在唯一的一條簡單路徑,用d(a,b)表示以a,b 為端點(diǎn)的
路徑的長度,它是該路徑上各邊長度之和。我們稱d(a,b)為a,b 兩結(jié)點(diǎn)間的距離。
一點(diǎn)v到一條路徑P的距離為該點(diǎn)與P 上的最近的結(jié)點(diǎn)的距離:
d(v,P)=min{d(v,u),u 為路徑P 上的結(jié)點(diǎn)}。
樹網(wǎng)的直徑:樹網(wǎng)中最長的路徑稱為樹網(wǎng)的直徑。對(duì)于給定的樹網(wǎng)T,直徑不一定是唯一的,
但可以證明:各直徑的中點(diǎn)(不一定恰好是某個(gè)結(jié)點(diǎn),可能在某條邊的內(nèi)部)是唯一的,我們稱該
點(diǎn)為樹網(wǎng)的中心。
偏心距 ECC(F):樹網(wǎng)T 中距路徑F 最遠(yuǎn)的結(jié)點(diǎn)到路徑F 的距離,即
ECC(F ) = max{d(v, F ), v?V}。
任務(wù):對(duì)于給定的樹網(wǎng)T=(V, E,W)和非負(fù)整數(shù)s,求一個(gè)路徑F,它是某直徑上的一段路徑
(該路徑兩端均為樹網(wǎng)中的結(jié)點(diǎn)),其長度不超過s(可以等于s),使偏心距ECC(F)最小。我們
稱這個(gè)路徑為樹網(wǎng)T=(V,E,W)的核(Core)。必要時(shí),F 可以退化為某個(gè)結(jié)點(diǎn)。一般來說,在上
述定義下,核不一定只有一個(gè),但最小偏心距是唯一的。
下面的圖給出了樹網(wǎng)的一個(gè)實(shí)例。圖中,A-B 與A-C是兩條直徑,長度均為20。點(diǎn)W是樹網(wǎng)
的中心,EF邊的長度為5。如果指定s=11,則樹網(wǎng)的核為路徑DEFG(也可以取為路徑DEF),偏
心距為8。如果指定s=0(或s=1、s=2),則樹網(wǎng)的核為結(jié)點(diǎn)F,偏心距為12。
第1 行,兩個(gè)正整數(shù)n和s,中間用一個(gè)空格隔開。其中n 為樹網(wǎng)結(jié)點(diǎn)的個(gè)數(shù),s為樹網(wǎng)的核
的長度的上界。設(shè)結(jié)點(diǎn)編號(hào)依次為1, 2, ..., n。
從第2 行到第n行,每行給出3 個(gè)用空格隔開的正整數(shù),依次表示每一條邊的兩個(gè)端點(diǎn)編號(hào)和
長度。例如,“2 4 7”表示連接結(jié)點(diǎn)2 與4 的邊的長度為7。
所給的數(shù)據(jù)都是正確的,不必檢驗(yàn)。
輸出描述?Output Description輸出只有一個(gè)非負(fù)整數(shù),為指定意義下的最小偏心距
樣例輸入?Sample Input【輸入樣例1】
5 2
1 2 5
2 3 2
2 4 4
2 5 3
【輸入樣例2】
8 6
1 3 2
2 3 2
3 4 6
4 5 3
4 6 4
4 7 2
7 8 3
【輸出樣例1】
5
【輸出樣例1】
5
數(shù)據(jù)范圍及提示?Data Size & Hint【限制】
40%的數(shù)據(jù)滿足:5<=n<=15
70%的數(shù)據(jù)滿足:5<=n<=80
100%的數(shù)據(jù)滿足:5<=n<=300, 0<=s<=1000。邊長度為不超過1000 的正整數(shù)
?
轉(zhuǎn)載于:https://www.cnblogs.com/harden/p/5895533.html
總結(jié)
以上是生活随笔為你收集整理的树网的核(codevs 1167)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: swift项目第一天:环境部署
- 下一篇: 学数解题160919