QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 256 MB Total points: 100

#394. Метро

Statistics

Уличная сеть города 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.