重複の可能性:
動的プログラミングとナップザック アプリケーション
私は動的プログラミングを理解しようとしてきましたが、新しい問題が発生するたびに、再帰の書き方について少し混乱しています。
次の問題を考えてみましょう: L × H の金属シートがあり、機械で垂直または水平に 2 つに切断できます。L と H は両方とも整数であり、切断も整数値に沿って発生します。n 個の長方形のパターンがあります l( i) × h(i) , i ≤ n (l , h も整数) ここで、i 番目のパターンは利益 c(i) を持ちます。総利益を最大化する方法でシートをカットする効率的なアルゴリズムを設計します。
今、それを解決するために、LxH のテーブルを作成すると思います (これは斜めに埋められます)。しかし、この問題を解決するための再帰をどのように形成すればよいでしょうか?