題目 鏈條問題 切木塊

2021-06-20 02:18:36 字數 878 閱讀 4017

problem:

假定一段長度為i的鋼條的**為pi(i= 1, 2, …), **如下  

長度i1  

2  3  

4  5  

6  7  

8   

9   

10  

**pi 5 

8 10 

請問,給定一段長度為n的鋼條和乙個**表pi

如何切割,收益最大?

#include #include using namespace std;

int price_count = 10;

bool record[31] = ;

int max_price(int *price, int length)

price[length] = max; //這步雖然越界,存在風險

//但是可以避免建立乙個新的int陣列

record[length] = 1;

return max;}/*

* max_price = max

* 對特定長度進行遞迴,把已計算過的中間最大值進行儲存指表,

* 便於下次遞迴使用

*/int main(int argc, char const *argv)

; for (int i = 20; i >= 8; --i)

cout << max_price(price, i) << endl;

return 0;

}

實際上,這是一種製表法,從1開始制最優值的表,

只不過是用遞迴來實現罷了,

所以有個風險,就是問題規模太大的話,可能出現段錯誤。

於是,可以把上述**改寫成乙個迭代製表的程式。

裝木塊問題

description 有一種很特別裝箱子,箱子的所有長度都是l,還有n根木塊,所有木塊的長度都小於等於l,箱子可以裝木塊,但是有如下限制 1.每個箱子只能裝一根或兩根木塊。2.如果裝兩根必須使得這兩根木塊的長度之和小於等於箱子的長度l。你的任務是求出最少需要多少個這樣的箱子才能裝下所有的木塊。in...

1992 裝木塊問題

裝木塊問題 time limit 1 seconds memory limit 32768 k total submit 79 accepted 7 description 有一種很特別裝箱子,箱子的所有長度都是l,還有n根木塊,所有木塊的長度都小於等於l,箱子可以裝木塊,但是有如下限制 1.每個箱...

UVA 木塊問題 101

uva 木塊問題 101,好開森好開森。雖然花了很長時間,不過能一次就ac也是蠻開心的,用c 寫效率就是不錯 疊木塊其實是乙個二維空間,每個木塊都有縱橫座標 include include includeusing namespace std block用於記錄木塊所在位置,x是位於哪一疊木塊,y是...