#LAISIR33. 直徑統治者 · 交錯競賽
直徑統治者 · 交錯競賽
🧮 直徑統治者 · 交錯競賽
📝 題目背景:
在智慧之森的最高議會中,兩位統治者候選人 A 與 B 展開了一場儀式競賽。他們輪流在神樹(森林中的一棵無根樹)上放置據點,據說:
誰能最先選出兩個據點,這兩點的距離等於整棵神樹的直徑,就能成為新的統治者。
你被任命為見證者,負責記錄整個競賽過程,並根據據點放置的順序,判定勝負。
🎯 任務說明:
給定一棵無向樹與兩位玩家交錯放置的據點序列,請模擬這場競賽。 若某位玩家的任兩個據點之間的距離達到樹的直徑,即判定該玩家勝出。
若操作結束後仍無人達成目標,輸出 None
。
📥 輸入格式:
n
a₁ b₁
...
aₙ₋₁ bₙ₋₁
k
x₁
x₂
...
xₖ
- 第一行一個整數
n
(1 ≤ n ≤ 10⁵):樹的節點數 - 接下來
n-1
行,每行兩個整數aᵢ
和bᵢ
:表示節點aᵢ
與bᵢ
之間有邊 - 第
n
+1 行為操作次數k
(2 ≤ k ≤ 10⁵) - 接下來
k
行,每行一個整數xᵢ
,表示第i
次操作選擇的節點編號 - 操作交錯進行:奇數次為玩家 A,偶數次為玩家 B
- 不會重複選取同一節點作為據點
📤 輸出格式:
- 若玩家 A 先成功構成一組距離等於直徑的據點對,輸出
A
- 若玩家 B 先成功,輸出
B
- 若所有操作後無人達成條件,輸出
None
📘 範例輸入:
5
1 2
1 3
3 4
3 5
4
1
3
4
5
📗 範例輸出:
A
Related
In following homework: