Codeforces Round 666 (Div. 1) |
---|
Закончено |
Вам дано целое число $$$k$$$ и дерево $$$T$$$ с $$$n$$$ вершинами ($$$n$$$ четно).
Обозначим за $$$dist(u, v)$$$ количество ребер на кратчайшем пути между вершинами $$$u$$$ и $$$v$$$ в $$$T$$$.
Определим неориентированный взвешенный полный граф $$$G = (V, E)$$$ следующим образом:
Ваша задача — найти совершенное паросочетание в $$$G$$$ с суммой весов ребер $$$k$$$ $$$(1 \le k \le n^2)$$$.
В первой строке записано два целых числа $$$n$$$, $$$k$$$ ($$$2 \le n \le 100\,000$$$, $$$n$$$ четное, $$$1 \le k \le n^2$$$): количество вершин и необходимый вес паросочетания.
В $$$i$$$-й из следующих $$$n - 1$$$ строк записаны два целых числа $$$v_i$$$, $$$u_i$$$ ($$$1 \le v_i, u_i \le n$$$), описывающих ребро между вершинами $$$v_i$$$ и $$$u_i$$$ в $$$T$$$. Гарантируется, что данный граф является деревом.
Если не существует необходимого паросочетания, выведите «NO» (без кавычек) в единственной строке.
Иначе, выведите «YES» (без кавычек) в первой строке вывода.
Затем, выведите $$$\frac{n}{2}$$$ строк, в $$$i$$$-й из них выведите $$$p_i, q_i$$$ ($$$1 \le p_i, q_i \le n$$$): $$$i$$$-ю пару в паросочетании.
4 2 1 2 2 3 3 4
YES 2 1 3 4
4 4 1 2 2 3 3 4
YES 3 1 2 4
Дерево это связный неориентированный граф без циклов.
Паросочетание это множество попарно несмежных ребер, без петель; таким образом, никакие два ребра не имеют общих концов.
Совершенное паросочетание это паросочетание, которое покрывает все вершины графа; таким образом, каждая вершина инцидентна ровно одному ребру паросочетания.
Название |
---|