ytu 2335 0 1揹包問題

2022-08-24 05:03:16 字數 754 閱讀 4042

試設計乙個用回溯法搜尋子集空間樹的函式。該函式的引數包括結點可行性判定函式和上界函式等必要的函式,並將此函式用於解0-1揹包問題。 0-1 揹包問題描述如下:給定n 種物品和乙個揹包。物品i 的重量是wi ,其價值為vi,揹包的容量為c。應如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大? 在選擇裝入揹包的物品時,對每種物品i只有2 種選擇,即裝入揹包或不裝入揹包。不能將物品i 裝入揹包多次,也不能只裝入部分的物品i。

第一行有2個正整數n和c。n是物品數,c是揹包的容量。接下來的1 行中有n個正整數,表示物品的價值。第3 行中有n個正整數,表示物品的重量。 

將計算出的裝入揹包物品的最大價值和最優裝入方案輸出。第一行輸出為:optimal value is

5 10

6 3 5 4 6

2 2 6 5 4

optimal value is

151 1 0 0 1

#include

#include

#include

using namespace std;

int v[100],w[100],dp[100][100],c[100];

int main()

//for(int i=0;i=1;i--)

else c[i]=0;

}if(m!=0)c[0]=1;

else c[0]=0;

cout

oj2335 0 1揹包問題

問題描述 0 1揹包問題 試設計乙個用回溯法搜尋子集空間樹的函式。該函式的引數包括結點可行性判定函式和上界函式等必要的函式,並將此函式用於解0 1揹包問題。0 1 揹包問題描述如下 給定n 種物品和乙個揹包。物品i 的重量是wi 其價值為vi 揹包的容量為c。應如何選擇裝入揹包的物品,使得裝 入揹包...

揹包問題 01揹包問題

n個物品,總體積是v,每個物品的體積的vi,每個物品的最大價值是wi,在不超過v的體積下求最大價值 eg揹包容積為 5 物品數量為 4 物品的體積分別為 物品的價值分別為 思路定義乙個二位陣列int f new int n 1 v 1 f i j 就表示在1 i個物品中選取體積小於v的情況的最大價值...

01揹包問題 完全揹包問題 多重揹包問題

0 1 揹包問題 給定 n 種物品和乙個容量為 c 的揹包,物品 i 的重量是 wi,其價值為 vi 問 應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?分析一波,面對每個物品,我們只有選擇拿取或者不拿兩種選擇,不能選擇裝入某物品的一部分,也不能裝入同一物品多次。解決辦法 宣告乙個 大...