QOJ.ac

QOJ

Limite de temps : 10 s Limite de mémoire : 256 MB Points totaux : 100

#8440. 收费公路

Statistiques

Flatland 有 $n$ 个城市,有 $n-1$ 条双向道路连接着这些城市。从该国的任何一个城市出发,都可以通过道路到达其他任何城市。在本题中,我们将从 $a$ 到 $b$ 所需的最少道路集合称为简单路径。

Flatland 政府最近在所有道路上引入了通行费。使用一条连接两个城市的道路需要花费 1 卢布。这意味着每次你从一个城市旅行到另一个城市时,你必须支付的卢布数量等于你旅途中经过的道路数量。

许多人对这一决定感到不满,尤其是那些长途旅行的人。现任政府的政治对手声称,Flatland 中简单路径的最大成本非常高,即 $cost$ 卢布。政府决定支持民众并平息反对派的愤怒。他们希望尽可能降低国内简单路径的最大成本。换句话说,他们希望反对派报告的 $cost$ 数值尽可能小。政府允许取消最多 $k$ 条道路的通行费以实现这一目标。如果有多种方法可以做到这一点,他们希望最小化变免费的道路数量。

像其他任何政府一样,Flatland 的政府相当死板。他们还要求,变免费的道路集合必须能够表示为某些城市 $x$ 和 $y$ 之间的简单路径。你的任务是帮助政府。

输入格式

第一行包含两个整数 $n$ 和 $k$ ($1 \le k < n \le 5000$),分别表示 Flatland 的城市数量和允许变免费的道路的最大数量。接下来的 $n-1$ 行,每行包含两个整数 $u_i$ 和 $v_i$,表示有一条连接城市 $u_i$ 和 $v_i$ 的道路 ($0 \le u_i, v_i < n$)。

输出格式

第一行输出一个整数:政府能够实现的简单路径的最大成本的最小值 ($0 \le cost < n-1$)。 第二行输出为实现该成本所需变免费的最小道路数量 $t$ ($0 \le t \le k$)。 如果 $t > 0$,则在第三行输出两个空格分隔的整数:城市 $x$ 和 $y$ 的编号,使得它们之间的简单路径上的所有道路都必须变免费 ($0 \le x, y < n$,且 $x$ 和 $y$ 之间的简单路径必须恰好包含 $t$ 条道路)。

样例

样例输入 1

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

样例输出 1

2
3
2 6

样例输入 2

5 2
0 1
0 2
0 3
0 4

样例输出 2

2
0

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.