↵
Какой самый простой способ проверить есть ли в дереве совершенное паросочетание?↵
↵
Может быть [алгоритм Куна](https://neerc.ifmo.ru/wiki/index.php?title=Алгоритм_Куна_для_поиска_максимального_паросочетания)? :)↵
↵
Скорее всго вы подумали про динамику по поддеревьям. Действительно это хороший способ, ведь он работает за размер ввода. Однако есть более простой способ проверить имеет ли дерево полное паросочетание.↵
↵
Пусть $sz_v$ — размер поддерева $v$-й вершины. Тогда я утверждаю, что совершенное паросочетание есть тогда и только тогда, когда ровно половина всех $sz_v$ четная.↵
↵
Доказательство:↵
↵
Пусть $sz_{odd}$ — количество нечетных поддеревьев, а $sz_{even}$ — количетво четных поддеревьев.↵
↵
Сначала докажем, что
↵
Maybe [Kuhn's algorithm](https://neerc.ifmo.ru/wiki/index.php?title=Алгоритм_Куна_для_поиска_максимального_паросочетания)? :)↵
↵
Most likely you are thinking about dynamics on subtrees. This is indeed a good way, because it works for the size of the input. However, there is an easier way to check if a tree has a complete pairing.↵
↵
Let $sz_v$ be the subtree size of the $v$th vertex. Then I claim that there is a perfect pairing iff exactly half of all $sz_v$ are even.↵
↵
Proof:↵
↵
Let $sz_{odd}$ be the number of odd subtrees, and $sz_{even}$ be the number of even subtrees.↵
↵
We first prove that $sz_{even} \leq sz_{odd}$.↵
↵
↵
Теперь докажем, что если $sz_{even} \neq sz_{odd}$, то в дереве нет полного паросочетания. Допустим есть. Тогда в нем есть ребро, соединяющее $v, u$, такие что
↵
Now we prove that if $sz_{even} \neq sz_{odd}$, then there is no perfect pairing in the tree. Suppose there is. Then it has an edge connecting $v, u$ such that $sz_v \equiv sz_u \equiv 1\space (mod\space 2)$.
↵
Таким образом $sz_{odd} = sz_{even}$ равносильно наличию полного паросочетания.↵
↵
Спасибо за прочтение!
↵
Thus $sz_{odd} = sz_{even}$ is equivalent to having a complete pairing.↵
↵
Thanks for reading!↵