動態規劃解決鋼條切割問題

2021-10-11 05:58:30 字數 929 閱讀 8932

一家公司購買長鋼條,將其切割成短鋼條**,切割本身沒有成本,長度為i的短鋼條的**為pi。那給定一段長度為n的鋼條和乙個**表pi,求鋼條的切割方案使得收益rn最大。

輸入鋼條的長度n。

輸出獲得的最大收益。

具體思路:對n進行切割,儲存切割產生的最大收益,如value[10]表示對10進行切割產生的最大收益,明顯其中有4種切割方式,並且用到了前面產生的結果

value[10] = max
從一開始的初始資料的第2個位置開始進行切割,當切割產生的價值大於當前價值的時候,則對最大價值進行更新,最終得到的第n個值就是我們想要的結果

具體實現的**如下:

/*

鋼條切割問題

一家公司購買長鋼條,將其切割成短鋼條**,切割本身沒有成本,長度為i的短鋼條的**為pi。

那給定一段長度為n的鋼條和乙個**表pi,求鋼條的切割方案使得收益rn最大

輸入鋼條的長度n,輸出得到最大收益

對n進行切割,儲存切割產生的最大收益,如value[10]表示對10進行切割產生的最大收益,明顯其中有4種

切割方式,並且用到了前面產生的結果

value[10] = max

*/#include

using

namespace std;

//儲存切割的結果

int value[

1000]=

;void

main()

//更新value的值

value[i]

= max_value;}}

cout << value[n]

<< endl;

}

動態規劃 鋼條切割問題

已知鋼條切割的不同長度對應的不同 如下所示 長度i 1 23 45 67 89 10 pi 1589101717202430 求輸入長度,輸出最佳的收益。詳細理論知識見 演算法導論第十五章 p359 書中給出三個演算法 一 自頂向下遞迴實現 缺點 當n足夠大時,時間會 性地增長。偽 cut rod ...

動態規劃 鋼條切割問題

動態規劃與分治法相似,都是通過組合子問題的解來求解原問題。回顧下分治法的原理 它將問題劃分為互不相交的子問題 注意 互不相交 遞迴求解子問題,再將它們的解組合起來,即為原問題的解。但是,動態規劃與分治法不同,有以下幾點 1 對於子問題重疊的情況,分治法則重複求解,不高效。而動態規劃對每個子問題只求解...

動態規劃 鋼條切割問題

一家公司購買長鋼條,將其切割成短鋼條 切割本身沒有成本,長度為i的短鋼條的 為pi。那給定一段長度為n的鋼條和乙個 表pi,求鋼條的切割方案使得收益rn最大。如乙個pi如下 長度i123 4567 8910 pi15 891017 1720 2430 在距離鋼條左端i長度處,我們總是可以選擇切割或者...