解法. 区間DP
この問題を,状態を区間で持つ動的計画法(Dynamic Programming; DP)で解く.競プロの世界ではこのような動的計画法を区間DPと呼ぶらしい.
解の性質について考察する。 に対して と を取り除くことができるなら かつ が既に取り除かれている。したがって、 に対して と 、 と がそれぞれペアとして取り除かれることはないので、どの解も交差しない区間に分割することができる。
例えば、 の最適解の一つは と 3 つの部分区間に分割して各部分区間の最適解を連結させたものと等しい。以上から、区間を状態に持つ動的計画法が下のように構成できる。
次のように区間を引数にとる関数を考える.
のときに取り除くことができる要素の最大数
このとき, が に等しいとき区間 の要素を全て取り除くことが出来るということになる.ここで, の漸化式は,
となる.あとは,区間のサイズが小さい方から上の漸化式を計算すればよい.
計算時間:
まとめ
漸化式を考えるのが難しい.部分構造から最適解をどのように構築するのかがすぐ分からなかった.