#LAISIR43. 祖先的總值加總
祖先的總值加總
🧭 題目名稱:祖先的總值加總
📝 題目背景:
在遙遠的族群中,每位族人繼承了祖先的智慧與力量。族人的關係可表示成一棵有根樹,父親與子女之間以邊相連。每位族人有一個代表其個人能力的整數值。現在,每位族人都想知道,他們自身的力量究竟有多少是來自祖先的影響 —— 也就是所有祖先的力量總和。
你的任務是,對於每位族人,計算其所有祖先(不包含自身)的力量總和。
📥 輸入格式:
輸入包含多行資料:
- 第一行一個整數
n
(2 ≤ n ≤ 10⁴),代表樹中節點的數量(節點編號為 1 到 n)。 - 第二行包含
n
個整數a_1, a_2, ..., a_n
(-10⁵ ≤ a_i ≤ 10⁵),第i
個整數代表編號為i
的節點的力量值。 - 接下來
n-1
行,每行兩個整數u v
,表示節點u
是節點v
的父親。 - 最後一行一個整數
r
(1 ≤ r ≤ n),表示樹的根節點編號。
保證輸入構成一棵合法的有根樹(連通、無環、每個節點有且僅有一個父節點,除了根)。
📤 輸出格式:
輸出一行包含 n
個整數,第 i
個數字表示編號為 i
的節點,其所有祖先的力量總和。各數字之間以空格分隔。
📘 輸入範例:
5
1 2 3 4 5
1 2
1 3
2 4
2 5
1
📗 輸出範例:
0 1 1 3 3
🔍 範例說明:
根節點為 1,其力量值為 1:
- 節點 1:沒有祖先 → 總和 0
- 節點 2:祖先為 [1] → 總和 1
- 節點 3:祖先為 [1] → 總和 1
- 節點 4:祖先為 [2, 1] → 總和 2 + 1 = 3
- 節點 5:祖先為 [2, 1] → 總和 2 + 1 = 3
🔢 資料範圍與限制:
- 2 ≤ n ≤ 10⁴
- -10⁵ ≤ a_i ≤ 10⁵
- 樹結構為合法的有根樹
- 根節點在邊關係中從未作為子節點出現
Related
In following homework: