解説
結論から言うと
を根とした部分木で 個宝を発掘したときに 親に移動させることができる人の最大値(親から人をもらわないといけない場合は負になる)
を求めると解くことができます。
頂点 のDPテーブルは以下のように求めることができます。
・頂点 が葉の場合
と の大小を比較し、 と を更新します。
・頂点 が葉でない場合
子のDPテーブルを利用して以下のDPを求めます。
子孫で 個の宝を発掘していて 子孫から 人移動してくるときの 人の収支の最大値
その後子孫から移動してきた人数と と を比較してDPテーブルを更新することができます。