Ctrl K

Все дороги ведут в столицу

Средняя
В области towns городов, пронумерованных от 0 до towns - 1, и towns - 1 узких дорог. Между любыми двумя городами существует ровно один путь по дорогам, если не обращать внимания на направление (то есть сеть дорог — дерево). Все дороги односторонние: roads[i] = [a, b] означает, что по дороге можно ехать только из города a в город b. В столице — городе 0 — пройдёт большая ярмарка, и из каждого города должно быть можно доехать до столицы. Для этого некоторые дороги можно развернуть в обратную сторону. Верните наименьшее число дорог, которые придётся развернуть.
Пример 1
towns=5, roads=[[0, 2], [2, 1], [3, 2], [4, 0]] → 2

Дороги 0 → 2 и 2 → 1 ведут от столицы, их нужно развернуть. Дороги 3 → 2 и 4 → 0 уже ведут к ней. Ответ 2.

Пример 2
towns=4, roads=[[1, 0], [2, 1], [3, 1]] → 0

Из любого города уже можно доехать до города 0, разворачивать ничего не нужно.

Пример 3
towns=2, roads=[[0, 1]] → 1
Ограничения
  • 2 ≤ towns ≤ 5 · 10⁴
  • len(roads) == towns - 1
  • roads[i] = [a, b], 0 ≤ a, b ≤ towns - 1, a ≠ b
  • Если не учитывать направление, дороги связывают все города
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПорядок сборки модулей СредняяОчередь на курсы СредняяСкладываются ли связи в дерево СредняяЛучшие корни дерева СредняяСколько изолированных групп в сети Средняя
загружаем Python…
Вход
towns=5, roads=[[0, 2], [2, 1], [3, 2], [4, 0]]
Ожидается
2

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