#LAISIR45. 消息的最佳投放點
消息的最佳投放點
🧭 題目名稱:消息的最佳投放點
📝 題目背景:
在一個廣大的山區中,各個村落之間透過小徑聯絡,整體構成了一棵無向的樹狀結構。村長即將發布一條緊急消息,這條消息將從一個村落出發,逐步傳播到整個村落網絡中。
為了節省時間與人力,村長希望選擇一個「最佳的起點村落」來投放這條消息,使得最後一個收到消息的村落所花的時間最少。
消息傳遞規則如下:
- 每條邊傳遞消息需 1 單位時間。
- 每個節點每單位時間只能對一個相鄰節點傳遞消息(即不能同時向多個方向廣播)。
- 不考慮消息排隊傳遞,只考慮「從起點出發,到所有節點最遲的時間」。
你的任務是:幫助村長找出所有起點中,使得「所有節點收到消息所需時間的最大值」最小的那個節點。如果有多個節點滿足條件,請輸出編號最小者。
📥 輸入格式:
第一行一個整數 n(1 ≤ n ≤ 10⁴),表示村落的總數(節點編號為 1 至 n)
接下來 n−1 行,每行兩個整數 u v(1 ≤ u, v ≤ n),表示村落 u 與 v 之間有一條小徑
📤 輸出格式:
一個整數,表示最佳消息投放點的節點編號(若有多個,輸出編號最小者)
📘 範例輸入:
6
1 2
1 3
2 4
2 5
5 6
📗 範例輸出:
2
📊 說明:
這棵樹的結構如下:
1
/ \
2 3
/ \
4 5
\
6
- 若從節點 1 發送,最遠是節點 6,時間為 3。
- 若從節點 2 發送,路徑可為:2→1→3、2→4、2→5→6,所有最長距離為 2。
- 其他起點的最大距離至少為 3。
所以節點 2 是最佳投放點。
Related
In following homework: