ARC029 D - 高橋君と木のおもちゃ
解法
まず、整数を置く回数は、全体で回になります。
葉から見ていき、追い出したい数字が置いてある頂点に数字を置く、という操作を繰り返すことでこれは達成できます。
また、ある数字を追い出したいとき、今置いてある頂点より親にあるものは全て追い出されてしまいます。
これにより、葉の方から追い出すか追い出さないかを決めていけば、何か計算できるかもしれない、ということがわかります。
また、数字を置く回数を決めると、は大きいものから貪欲に選べることもわかります。
- 今見ている頂点がで、追い出すと決めた頂点が個あるとき、残すと決めた数字の総和の最大値
というDPを考えます。
すると、
(ただし、はの子、)
という遷移が成立することがわかります。
例外的に、の場合のみ、となります。
この遷移は、二乗の木DPの形になっているため、計算全体でとなっています。
この計算が終わったら、
と、の上から個とったものの和について、最大値を計算することで答えが求まります。
感想
初手何していいかわかりづらい問題だったのですが、考察を進めていくと綺麗になったので面白かったです。