Ctrl K

Чётное число кабелей

Сложная
В сети node_count станций с номерами от 1 до node_count. Каждый элемент links[i] = [a, b] — кабель между станциями a и b. Сеть не обязательно связная. Разрешено проложить не больше двух новых кабелей (можно и ни одного). Нельзя тянуть кабель от станции к ней самой и нельзя прокладывать второй кабель между парой станций, которые уже соединены. Верните True, если после этого к каждой станции может подходить чётное число кабелей, и False иначе.
Пример 1
node_count=5, links=[[1, 2], [2, 3], [3, 4], [4, 5]] → True

Нечётное число кабелей только у станций 1 и 5, и они не соединены. Достаточно проложить кабель 1–5.

Пример 2
node_count=5, links=[[1, 2], [2, 3], [3, 1], [1, 4]] → True

Нечётно у станций 1 и 4, но они уже соединены. Помогает станция 5, ни с кем не связанная: прокладываем 1–5 и 4–5.

Пример 3
node_count=6, links=[[1, 2], [3, 4], [5, 6]] → False

Нечётно у всех шести станций, а двумя кабелями можно исправить не больше четырёх.

Ограничения
  • 3 ≤ node_count ≤ 10⁵
  • 2 ≤ len(links) ≤ 10⁵
  • links[i] = [a, b], 1 ≤ a, b ≤ node_count, a ≠ b
  • Между любой парой станций не больше одного кабеля
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКого вылечить первым СложнаяКого отключить от сети СложнаяСамый частый цвет на пути СложнаяМаршруты между равными вершинами СложнаяГраф, уложенный в сетку Сложная
загружаем Python…
Вход
node_count=5, links=[[1, 2], [2, 3], [3, 4], [4, 5]]
Ожидается
True

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