No.038 D 問題 コード 箱は で昇順にソートしておく. 番目の箱を一番外側の箱にしたときの最大の入れ子の数を とすると, となる. これをこのまま計算すると となる. そこでセグメント木を使う. インデックスとして を取り, 値としてそのときの最大の入れ子の数として DP を行いつつセグメント木を更新していく. が同じ値がある場合は で降順になるようにソートしておけば同じ の後の DP が前の DP に影響を受けることがなくなる.