實驗室裡原先有一台電腦(編號為 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號電腦...