第六周作業 A題

2021-10-04 17:37:40 字數 1601 閱讀 5690

input

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

output

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

sample input

5

1 12 1

3 11 1

sample output

323

44

解題思路:分析易得,我們求每個點所能到達的最遠距離,這個最遠距離一定是從兩個端點出發得到的,所以我們將求這個點到端點的距離更改為求兩個端點到各個點的距離的最大值即可

這裡我們需要用到三遍dfs

第一遍從任一點出發,能得到從這點所能到達的最短距離(一定是某乙個端點)

第二遍從這個端點出發,途中記錄到達每一點的距離,所能到達的最遠距離就是另乙個端點

第三遍從第二個端點出發到達每乙個點,與第二遍的結果取max就能得到答案啦

#include

#include

#include

using

namespace std;

int head[

10010];

int vis1[

10010

],vis2[

10010

],vis3[

10010];

int dis[

10010];

int dis1[

10010

],dis2[

10010];

//表示從v1v2到該點的距離

int num;

//表示邊數

int v1,v2;

//左右端點

int ans1,ans2,ans3;

struct nodee[

20010];

void

add(

int u,

int v,

int w)

void

dfs1

(int u)

dfs1

(v);}}

}void

dfs2

(int u)

dfs2

(v);}}

}void

dfs3

(int u)

dfs3

(v);}}

}int

main()

dfs1(1

);dfs2

(v1)

;dfs3

(v2)

;for

(int i=

1;i<=n;i++

) cout<<

max(dis1[i]

,dis2[i]

)<}return0;

}

第六周作業

a.用指標訪問物件 includeusing namespace std class a a int aa a aa 定義建構函式,用引數aa初始化資料成員a void display int main b.指標型別作為成員函式的引數 includeusing namespace std class...

第六周作業

1 自建yum倉庫,分別為網路源和本地源 本地源 cd etc yum.repos.d vim local.repo local name local cdrom yum baseurl file misc cd enabled 1 gpgcheck 1 gpgkey file etc pki rp...

第六周作業

1.簡述gps載波相位測量的基本原理?載波相位測量是利用接收機測定載波相位觀測值或其差分觀測值,經基線向量解算以獲得兩個同步觀測站之間的基線向量座標差的技術和方法。載波相位觀測量理論上是gps訊號在接收時刻的瞬時載波相位值。但實際上是無法直接測量出任何訊號的瞬時載波相位值,測量接收到的是具有都卜勒頻...