лес чётных деревьев
От: Кодт Россия  
Дата: 20.12.16 11:40
Оценка:
https://www.hackerrank.com/challenges/even-tree

Дано: дерево (связный ациклический граф) из N вершин.
Найти максимальное количество рёбер, которые можно удалить, чтобы в получившемся лесу все деревья состояли из чётного числа вершин.

Вход: количество вершин N, количество рёбер M, и далее список из M рёбер в виде пар вершин (где вершины пронумерованы от 1 до N)
Выход: количество удалённых рёбер
Перекуём баги на фичи!
Отредактировано 21.12.2016 14:20 Кодт . Предыдущая версия .
Re: лес чётных деревьев
От: Lexey Россия  
Дата: 21.12.16 12:16
Оценка: 15 (1)
Здравствуйте, Кодт, Вы писали:

К>https://www.hackerrank.com/challenges/even-tree


К>Дано: дерево (связный ациклический граф) из N вершин.

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

Fixed.

К>Вход: количество вершин N, количество рёбер M, и далее список из M рёбер в виде пар вершин (где вершины пронумерованы от 1 до N)

К>Выход: количество удалённых рёбер

Вроде все просто.
Если N нечетное, то ответ 0.
Иначе, считаем числа вершин в поддеревьях (рекурсивно от корня к листьям). Как только набираем "четное" поддерево, отрезаем его, увеличивая результат.
Сложность — O(N).
"Будь достоин победы" (c) 8th Wizard's rule.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.