Codeforces Round 661 (Div. 3) |
---|
Закончено |
Простая и сложная версии на самом деле являются разными задачами, поэтому прочитайте условия обеих задач внимательно.
Вам задано взвешенное корневое дерево, вершина $$$1$$$ — корень этого дерева. Также каждое ребро имеет свою собственную стоимость.
Дерево — это связный граф без циклов. У корневого дерева есть специальная вершина, называемая корнем. Предком вершины $$$v$$$ называется последняя отличная от $$$v$$$ вершина на пути от корня к вершине $$$v$$$. Потомками вершины $$$v$$$ называются все вершины, для которых $$$v$$$ является предком. Вершина называется листом, если у нее нет потомков. Взвешенное дерево — это такое дерево, в котором у каждого ребра есть некоторый вес.
Вес пути — это сумма весов всех ребер на этом пути. Вес пути от вершины до самой себя равен $$$0$$$.
Вы можете совершить последовательность из нуля или более ходов. В течение одного хода вы можете выбрать ребро и поделить его вес на $$$2$$$ с округлением вниз. Более формально, в течение одного хода вы выбираете какое-то ребро $$$i$$$ и делите его вес на $$$2$$$ с округлением вниз ($$$w_i := \left\lfloor\frac{w_i}{2}\right\rfloor$$$).
Каждое ребро $$$i$$$ имеет свою стоимость $$$c_i$$$, которая равна либо $$$1$$$, либо $$$2$$$ монетам. Каждый ход с ребром $$$i$$$ стоит $$$c_i$$$ монет.
Ваша задача — найти минимальную суммарную стоимость, необходимую для того, чтобы сделать сумму весов путей от корня до каждого листа не превосходящей $$$S$$$. Другими словами, если $$$w(i, j)$$$ — это вес пути от вершины $$$i$$$ до вершины $$$j$$$, то вам необходимо сделать $$$\sum\limits_{v \in leaves} w(root, v) \le S$$$, где $$$leaves$$$ — это список всех листьев.
Вам необходимо ответить на $$$t$$$ независимых наборов тестовых данных.
Первая строка теста содержит одно целое число $$$t$$$ ($$$1 \le t \le 2 \cdot 10^4$$$) — количество наборов тестовых данных. Затем следуют $$$t$$$ наборов тестовых данных.
Первая строка набора тестовых данных содержит два целых числа $$$n$$$ и $$$S$$$ ($$$2 \le n \le 10^5; 1 \le S \le 10^{16}$$$) — количество вершин в дереве и максимально возможная сумма весов, которую вы можете получить. Следующая $$$n-1$$$ строка описывает ребра дерева. Ребро $$$i$$$ описывается четырьмя целыми числами $$$v_i$$$, $$$u_i$$$, $$$w_i$$$ и $$$c_i$$$ ($$$1 \le v_i, u_i \le n; 1 \le w_i \le 10^6; 1 \le c_i \le 2$$$), где $$$v_i$$$ и $$$u_i$$$ — вершины, которые соединены ребром $$$i$$$, $$$w_i$$$ — вес этого ребра, а $$$c_i$$$ — цена этого ребра.
Гарантируется, что сумма всех $$$n$$$ не превосходит $$$10^5$$$ ($$$\sum n \le 10^5$$$).
Для каждого набора тестовых данных выведите ответ на него: минимальную суммарную стоимость, необходимую, чтобы сделать сумму весов путей от корня до каждого листа не превосходящей $$$S$$$.
4 4 18 2 1 9 2 3 2 4 1 4 1 1 2 3 20 2 1 8 1 3 1 7 2 5 50 1 3 100 1 1 5 10 2 2 3 123 2 5 4 55 1 2 100 1 2 409 2
0 0 11 6
Название |
---|