動的プログラミング
記事ディレクトリ
1.動的プログラミングの問題解決のアイデア
状態
最適な部分構造
後遺症なし
伝達方程式
分類ディスカッション、注意深い列挙
2.線形DPの概要
分類
LIS
LCS
デジタルトライアングル
バックパック
専門
専門
DP状態はすべての次元に沿って直線的に成長します
3.基本モデル
- 最大連続サブシーケンス合計
dp [i]を、A [i]を終了点とする連続シーケンスの最大合計とする - 最長非減少サブシーケンス(LIS)
dp [i]がA [i]で終わる最長の連続非減少サブシーケンスの長さを示すとしましょう - 最長共通サブシーケンス(LCS)の
順序dp[i][j]
は、文字列Aのi位置と文字列Bのj位置の前のLCSの長さを表します - 最も長い回文の部分文字列の
順序dp[i][j]
は、S [i]からS [j]で表される部分文字列が回文の部分文字列であるかどうかを示します - タワー番号のDP
コマンドはdp[i][j]
、i番目の行のj番目の番号から始まる最下層へのすべてのパスで取得できる最大合計を表します - DAG最長の方法
--------------------------------------------------つづく