什麼是揹包問題呢?
就是乙個特定載重的揹包,給你乙個資料表,求解其最優的結果,那麼很顯然嘍---》這就是乙個優化問題
那麼我們具體一點!
這個揹包載重8千克;
李子:4kg 4500元;
蘋果:5kg 5700元;
士多啤梨:1kg 1100元;
橘子:2kg 2250元;
甜瓜:6kg 6700元;
那,我們使用動態規劃,使用每步都要求是最優解的辦法,就可以解出來,這個和數學建模演算法裡面一樣,還要一些差不多的東西,今天我們就先看一下這個題的da**;c++;
#include #include #include #includeusing namespace std;
#define l 8
#define n 5
#define m 1
/*使用動態規劃求解,就是每步都選取最優解,然後直到最後*/
struct body ;
typedef struct body aaa;
int main(void) ;//存放放入順序
int value[l + 1] = ;//存放**
int n, i, s, p;//p是剩餘的質量(揹包剩餘)
aaa a,,,, };
for (i = 0; i < n; i++)
} }cout << "物品" << "\t" << "**" << "\n";
//倒著輸出,裝入的水果量,與價值
for (i = l; i >= m; i = i - a[item[i]].size)
cout << "合計" << "\t" << value[l] << endl;
system("pause");
return 0;
}
演算法(揹包問題 01揹包問題)
01揹包問題 有 n 件物品和乙個容量是 v 的揹包。每件物品只能使用一次。第 i 件物品的體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 n 行,...
演算法 揹包問題
揹包問題用逆序減少空間複雜度的情況下,揹包問題,如果是多維揹包 質量,容積,個數 則加矩陣維度 如果是01揹包,則逆序內迴圈,如果是完全揹包 每種物品個數不限 則順序內迴圈,如果是混合揹包 限制每種物品的個數 include using namespace std define maxn 110 d...
變種 揹包問題 演算法設計 揹包問題
題目 乙個旅行者準備隨身攜帶乙個揹包,可以放入揹包的物品有n種,每種物品的重量和價值分別為wj,vj 如果揹包的最大重量限制是b,怎樣選擇放入揹包的物品以使得揹包的價值最大?目標函式 約束條件 演算法設計 設fk y 表示只允許裝前k 種物品,揹包總重不超過y 時揹包的最大價值。fk y 有兩種情況...