Kutimotiの競プロメモ区間DPとは何かと言われるといまいちよく分からないが、上記に書いてあることの仕組みは大体分かった。ボトムアップ型のコードしか見てないけど。ナップサック問題と似ていて、細切れにして計算しておき、全体の計算量を減らしている。細切れの計算から始めて徐々に計算範囲を広げて、最後に本当に知りたい答えに行き着くのが、ボトムアップ型。再帰型は、多分全体を知りたいという関数を実行すると、勝手にボトムの計算をメモりながら再帰的に行う。新しい問題で解き方思いつけるのか謎。上記のダルマさん問題のボトムアップ式コードでは、全消し可能かを確認しつつ、対象範囲を全パターンで区切って消せる最大数を取得している。徐々に対象範囲を広げることで、区切った際に確実に消せる最大数が既に分かってる状態が作れる。DPは、細分化して覚えておくやつのことなんだなーと思った。累積和は、配列の一部の範囲の合計を出すやつです。上記はPythonでやっていました。ビット演算・ビット全探索ビットは0か1の2通りを表せるやつです。2引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。