Kyoto University Programming Contest 2019 F - カズマ王国の陥落
問題
王国に個の街がある。 魔王が番目の街にモンスターを匹送ると、王国にのダメージを与える。 魔王は個の拠点があり、合計のモンスターを番目の街に好きな配分で送り込める。 王国に与えられダメージの最大値を求める。
考察
次のようなdpを考える。
番目の街に派遣し、番目以降の街は未定のときのダメージの最大値
とすると、以下の式で更新できる。
ただし、
解は。
このままでは計算量はでTLEになる。の計算は範囲によって決まるので、セグメント木を使って高速に計算することができそうである。
のが小さい方から計算して、セグメント木上では、常にを満たす拠点のみ計算するようにすると、拠点ごとにセグメント木の操作が追加と削除で2回になる。
これで計算量がになった。