Ctrl K

Охват через мост между деревьями

Средняя
Есть два неориентированных дерева. В первом n узлов с номерами от 0 до n - 1, во втором — m узлов с номерами от 0 до m - 1. Рёбра заданы массивами first_edges (длины n - 1) и second_edges (длины m - 1), где каждая пара [a, b] — ребро между узлами a и b соответствующего дерева. Ещё дано число limit. Узел v *в зоне охвата* узла u, если путь от u до v содержит не больше limit рёбер. Любой узел в зоне охвата самого себя. Для каждого узла i первого дерева разрешено провести одно ребро между любым узлом первого дерева и любым узлом второго. Посчитайте, сколько узлов (в обоих деревьях вместе) может оказаться в зоне охвата узла i при наилучшем выборе этого ребра. Верните массив из n чисел — ответ для каждого узла первого дерева. Запросы независимы: для каждого i ребро выбирается заново.
Пример 1
first_edges=[[0, 1], [1, 2]], second_edges=[[0, 1], [0, 2]], limit=1 → [3, 4, 3]

В первом дереве (цепочка 0–1–2) в пределах одного ребра от узла 0 — узлы 0 и 1, от узла 1 — все три, от узла 2 — узлы 1 и 2. Новое ребро само занимает весь запас в 1 шаг, поэтому из второго дерева достаётся ровно один узел — тот, к которому подключились. Ответ [3, 4, 3].

Пример 2
first_edges=[[0, 1], [1, 2]], second_edges=[[0, 1], [0, 2]], limit=0 → [1, 1, 1]

При limit = 0 каждый узел видит только себя: второе дерево недостижимо.

Ограничения
  • 2 ≤ n, m ≤ 1000
  • len(first_edges) = n - 1, len(second_edges) = m - 1
  • Каждое ребро — пара номеров узлов своего дерева
  • first_edges и second_edges задают корректные деревья
  • 0 ≤ limit ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДерево глазами наблюдателя справа СредняяДерево по столбцам СредняяПервый на нижнем этаже СредняяМаксимум на каждом уровне дерева СредняяОстановить ветку процессов Средняя
загружаем Python…
Вход
first_edges=[[0, 1], [1, 2]], second_edges=[[0, 1], [0, 2]], limit=1
Ожидается
[3, 4, 3]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 60 тестов на сервере, включая скрытые.