動態規劃 切鋼條

2021-10-11 00:22:34 字數 1047 閱讀 1047

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

輸入鋼條的長度n。
輸出獲得的最大收益。
7
18

問題思路:把長度為n的鋼條看做n段長度為1的鋼條,從鋼條的最左端開始的相鄰連線點開始,可以選擇切割或者不切割,故總共的切割方案有2的n-1次方(這是在假設每一小段鋼條不一樣的情況下),實際總的切割方案數可以利用上述的找零思想。現在問題是所有切割方法的最大收益,假設長度為n的鋼條的所有切割方案中最大收益為f[n],則f[n] = max。每次切割就只使用一次。

#include using namespace std;

void max_cut(int dp,int price,int n)

dp[i] = profit;

}}int main(); //必須初始化為0

int price[11] = ;

max_cut(dp,price,n);

cout << dp[n] << endl;

return 0;

}

#include#include#include #include using namespace std;

int pi = ;

int max(int a,int b)

int dp[1000];

int cut_rod(int n)

return max_value;

}int main()

動態規劃之切鋼條

填寫備忘錄表。查詢。從低到高遞迴填寫備忘錄。最初資料,經過幾次抉擇,產生更多資料。public static class dynamicprocess fill notetable.integer notetable new integer 6 notetable 0 0 filltable not...

動態規劃 鋼條切割

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

動態規劃 鋼條切割

這是演算法導論動態規劃的乙個例子,自己實現了一下 給定乙個長度為n英吋的鋼條和乙個 表pi i 1,2 n 求切割鋼條方案,使得銷售收益rn最大。注意,如果長度為n的鋼條 pn足夠大,則最優解可能就不需要切割。分析 如下 include include include using namespace...