#LAISIR27. 部族會議的中心
部族會議的中心
🧮 題目名稱:部族會議的中心
📝 題目背景:
在遙遠的伊爾部族,每年都會召開一次盛大的部族會議,屆時所有村莊的代表都需趕赴會場。為了使交通成本最小,長老們希望將會場設在某個村莊,使得當這個村莊被視為中心後,其餘所有分支部落分裂成的子部族中最大的一支也不會過於龐大,以避免偏遠地區過度擁擠。
這個「理想的村莊」就被稱為部族重心。
🎯 任務說明:
給定一棵以村莊為節點的無根樹,請你找出其中一個重心節點,使得移除此節點後,剩餘所有子樹中節點最多的一棵,其大小不超過整體節點數的一半。
若有多個節點皆滿足條件,請輸出編號最小的那一個。
📥 輸入格式:
n
a₁ b₁
a₂ b₂
...
aₙ₋₁ bₙ₋₁
n
表示村莊總數(即樹中節點總數)。- 接下來
n - 1
行,每行兩個整數aᵢ
和bᵢ
,表示村莊aᵢ
與村莊bᵢ
之間有一條道路連接。
📤 輸出格式:
一行,一個整數,表示重心節點的編號(若有多個,輸出編號最小者)。
📊 資料範圍:
1 ≤ n ≤ 10⁵
1 ≤ aᵢ, bᵢ ≤ n
- 保證輸入構成一棵樹(即連通且無環)
📘 輸入範例:
9
1 2
1 3
2 4
2 5
3 6
3 7
6 8
6 9
📗 輸出範例:
3
💡 範例說明:
以節點 3 為中心時,刪除節點 3 會將整棵樹分成三部分,分別是:
- 子樹包含節點 1, 2, 4, 5(大小為 5)
- 子樹包含節點 6, 8, 9(大小為 3)
- 子樹包含節點 7(大小為 1)
最大子樹大小為 5,不超過總數的一半(即 4.5),因此 3 是符合條件的節點之一。
Related
In following homework: