QOJ.ac

QOJ

时间限制: 4 s 内存限制: 256 MB 总分: 100

#394. 地鐵

统计

Bytown 的街道網絡包含 $n$ 個路口和 $n-1$ 條雙向街道,每條街道直接連接一對路口,且任意兩個路口之間都可以互相到達。為了改善交通,市長 Byteasar 想要建設一個地鐵系統。具體來說,他希望在某些路口設置地鐵站,並鋪設軌道,使軌道穿過部分街道。地鐵網絡應該是連通的,即列車必須能夠在任意兩個地鐵站之間通行,途中可能經過其他地鐵站。

挖掘隧道的成本很高,但建設終點站(即只有一條隧道進入的車站)的成本更高,因為這些車站需要額外的基礎設施來停放和維護列車。由於財政限制,終點站的數量最多只能有 $k$ 個。另一方面,一個合理的地鐵網絡至少需要兩個這樣的車站。

乘客的「煩躁指數」是指他們從家出發,步行到達最近的地鐵站所需經過的最少街道數量。市長要求設計一個地鐵網絡,以最小化所有乘客煩躁指數的最大值。我們假設每個路口都住著一些乘客。

輸入格式

第一行包含兩個整數 $n$ 和 $k$ ($n \ge 3, 2 \le k \le n$),用空格分隔,分別表示路口數量和終點站的最大數量。路口編號為 $1$ 到 $n$。

接下來的 $n-1$ 行,每行包含兩個整數 $a$ 和 $b$ ($1 \le a, b \le n, a \neq b$),用空格分隔,表示路口 $a$ 和 $b$ 之間直接由一條街道相連。

輸出格式

第一行輸出兩個整數 $r$ 和 $s$,用空格分隔,分別表示乘客煩躁指數的最大值的最小值,以及在該設計下終點站的數量(滿足 $2 \le s \le k$)。第二行輸出 $s$ 個不同的整數,範圍在 $1$ 到 $n$ 之間,對應於設置終點站的路口編號。

在所有網絡設計中,應優先選擇 $r$ 最小的設計。如果存在平局,次要目標是最小化 $s$。如果存在多個滿足 $r$ 最小且 $s$ 最小的設計,則可以輸出其中任意一個。

範例

範例 1

8 3
1 5
2 5
2 7
3 7
4 5
5 6
7 8

輸出 1

1 2
8 1

說明

街道網絡如圖所示。最優的地鐵網絡設計有兩個終點站(位於 1 號和 8 號路口)。其對應的乘客煩躁指數最大值為 1。請注意,還存在其他滿足 $r=1$ 和 $s=2$ 的最優地鐵網絡設計。此外也存在 $r=1$ 和 $s=3$ 的網絡,但它們不是最優的。

範例測試

  • 1ocen: $n = 30, k = 29$,路口 $2, \dots, n$ 均與路口 $1$ 相連。
  • 2ocen: $n = 5000, k = 4000$,路口 $1, 2, \dots, 2000$ 依次相連形成一條路徑,路口 $2001, \dots, 3500$ 均與路口 $1$ 相連,路口 $3501, \dots, 5000$ 均與路口 $2000$ 相連。
  • 3ocen: $n = 2^{20} - 1, k = 1509$,路口構成一棵滿二叉樹。

評分

測試集由以下子任務組成。每個子任務內可能包含多個測試點。 如果程式僅第一行輸出正確,將獲得該測試點 50% 的分數。請記住,程式仍需正常終止,且不能超過時間和記憶體限制。各子任務的時間限制發佈在 SIO 上。

子任務 資料範圍 分值
1 $n \le 5000$ 30
2 $n \le 500\,000$ 40
3 $n \le 3\,000\,000$ 30

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.