A 氪金帶東

2021-10-23 02:43:15 字數 1785 閱讀 3942

實驗室裡原先有一台電腦(編號為 1),最近氪金帶師咕咕東又為實驗室購置了 n - 1 臺電腦,編號為 2 到 n 。每台電腦都用網線連線到一台先前安裝的電腦上。但是咕咕東擔心網速太慢,他希望知道第i臺電腦到其他電腦的最大網線長度,但是可憐的咕咕東在不久前剛剛遭受了宇宙射線的降智打擊,請你幫幫他。

輸入要求:

輸入檔案包含多組測試資料。對於每組測試資料,第一行乙個整數n (n <= 10000),接下來有n-1行,每一行兩個數,對於第i行的兩個數,它們表示與 i 號電腦連線的電腦編號以及它們之間網線的長度。網線的總長度不會超過10^9,每個數之間用乙個空格隔開。

輸出要求:

對於每組測試資料輸出n行,第i行表示i號電腦的答案 (1<=i<=n)。

sample input:

511

2131

11

sample output:

323

44

#include

#include

#include

using

namespace std;

struct edge

edge

(int des,

int len)};

int n;

//n為點的個數

vector tree[

10005];

int reach[

10005];

int distanceto1[

10005];

int distanceto2[

10005];

intgetfarthestv

(int p)

int v = p;

queue<

int> q;

q.push

(p);

reach[p]=1

;while

(!q.

empty()

)}}return v;

}void

dijkstra

(int p,

int*distance)

queue<

int> q;

q.push

(p);

distance[p]=0

; reach[p]=1

;while

(!q.

empty()

)}}}

intmain()

for(

int i =

1; i <= n; i++

)int v1 =

getfarthestv(1

);int v2 =

getfarthestv

(v1)

;//v1和v2是樹的直徑

//cout << "直徑:" << v1 << " " << v2 << endl;

dijkstra

(v1, distanceto1)

;dijkstra

(v2, distanceto2)

;for

(int i =

1; i <= n; i++

)for

(int i =

1; i <= n; i++

) tree[i]

.clear()

;}}

Week6作業A 氪金帶東

輸入檔案包含多組測試資料。對於每組測試資料,第一行乙個整數n n 10000 接下來有n 1行,每一行兩個數,對於第i行的兩個數,它們表示與i號電腦連線的電腦編號以及它們之間網線的長度。網線的總長度不會超過10 9,每個數之間用乙個空格隔開。對於每組測試資料輸出n行,第i行表示i號電腦的答案 1 i...

Week6 作業 A 氪金帶東

一 題目描述 input 輸入檔案包含多組測試資料。對於每組測試資料,第一行乙個整數n n 10000 接下來有n 1行,每一行兩個數,對於第i行的兩個數,它們表示與i號電腦連線的電腦編號以及它們之間網線的長度。網線的總長度不會超過10 9,每個數之間用乙個空格隔開。output 對於每組測試資料輸...

week6 作業 A 氪金帶東

輸入檔案包含多組測試資料。對於每組測試資料,第一行乙個整數n n 10000 接下來有n 1行,每一行兩個數,對於第i行的兩個數,它們表示與i號電腦連線的電腦編號以及它們之間網線的長度。網線的總長度不會超過10 9,每個數之間用乙個空格隔開。output 對於每組測試資料輸出n行,第i行表示i號電腦...