B. Наибольшее паросочетание в дереве
2000 мс · 256 МБ · всё или ничего
Паросочетание - множество рёбер, попарно не имеющих общих вершин. Найдите наибольшее по количеству рёбер паросочетание дерева.
Состояние - «вершина, занята ли она уже ребром паросочетания вниз»:
Вторая формула читается так: берём базовый ответ, выбираем одного ребёнка , к которому проведём ребро паросочетания, и заменяем его вклад: вместо теперь - ребёнок обязан быть свободен, зато добавилось ребро.
Такая замена «вычесть старый вклад, прибавить новый» - стандартный приём, когда надо выбрать ровно одного ребёнка. Он работает, потому что сумма обратима.
Ответ - .
Формат ввода
В первой строке - число ().
В следующих строках - рёбра дерева.
Формат вывода
Одно число - размер наибольшего паросочетания.
Примеры
ввод
4 1 2 2 3 3 4
вывод
2
ввод
3 1 2 1 3
вывод
1
Войдите, чтобы отправлять решения.