AOJ 1611 - ダルマ落とし
解法
区間DPをします。
区間の中で落とせるブロックの最大値
とすると、答えはとなります。
まず、となります。続いて、ならばとなります。
では、を求めていきます。
まず、 (すなわち、区間のブロックをすべて落とせるということです)かつ、ならば、区間のブロックを全て落とせるということになるので、答えはとなります。
それ以外の場合、を適当な2つの区間に分割し、それぞれで落とせるブロックの最大値の和を求め、について全探索しながら最大値を求めればいいです。
ということです。
あとはこのDPを行えば、答えを求めることができます。
感想
番目のブロックと番目のブロックをペアで落とすには、の区間のブロックを全て落とす必要がある、ということに気づき、そこからうまく調べる方法が無いか、を探しました。端の2つのブロックを落とさない場合は、適当に2つの区間に分割すれば最適解を求められるだろう、ということで上のようなDPをしました。