130
правок
Изменения
→Псевдокод
'''for''' (child : Ch[x])
dfs(child)
a[x] = '''max'''(a[x], b[child] + w[x][child] - с[child]) <font color = darkgreen>//по формуле выше, но без b[x](прибавим его один раз в конце) </font color = darkgreen> b[x] += с[child] a[x] += b[x] <font color = darkgreen>// так как в a[x] пока что хранится только на сколько мы можем увеличить ответ если будем использовать вершину x</font color = darkgreen> c[x] = '''max'''(a[x], b[x]) <font color = darkgreen>//в основной процедуре вызываем dfs(root) '''return''' от корня, после этого ответ будет хранится в c[root]</font color = darkgreen>
== Амортизированные оценки для ДП на дереве ==