Существует корневое дерево с N узлами (пронумерованными от 1 до N); узел «1» является корнем. Каждый узел имеет значение; обозначим значение узла i через A(i).
Следующие операции могут выполняться любое количество раз (включая ноль):
1.выберите любой узел, который еще существует в дереве, и удалите все поддерево этого узла, включая его самого.
2. Определим прибыль как сумму значений всех узлов, существующих на данный момент в дереве, за вычетом X⋅k, где k обозначает количество раз, которое эта операция выполнялась. Найдите максимально возможную прибыль.
Как мы можем рассчитать значение «k» здесь? (означает, что узел времени удален, чтобы получить оптимальную прибыль)
Пример:-
3(number of nodes,N) ,
5(X)
1 -5 -10 (Values of corresponding nodes)
(edge(s) from 'x'->'y')
1 2
2 3
Output: -4
We remove the sub-tree of node : 2'.
Now,value of our tree is: 1.
Finals answer:- 1-(x)*k,
(k=1); as we have performed the operation of removing the sub-tree only '1' time
: 1-(5)*1= -4.
ПРИМЕЧАНИЕ: дерево не должно быть бинарным, это может быть и обычное дерево.