揹包問題i01 OJ

2021-09-30 13:39:45 字數 874 閱讀 2215

描述

現在有很多物品(它們是可以分割的),我們知道它們每個物品的單位重量的價值v和重量w(1<=v,w<=10);如果給你乙個揹包它能容納的重量為m(10<=m<=20),你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。 輸入

第一行輸入乙個正整數n(1<=n<=5),表示有n組測試資料;

隨後有n測試資料,每組測試資料的第一行有兩個正整數s,m(1<=s<=10);s表示有s個物品。接下來的s行每行有兩個正整數v,w。

輸出輸出每組測試資料中揹包內的物品的價值和,每次輸出佔一行。

樣例輸入

1

3 15

5 10

2 83 9

樣例輸出

65個人理解:

2.為了使放入揹包的物品總價值最大,首先應該把單位價值最大的物品全部放入書包(如果書包容量大於該物品的重量) 

,其次,再放單位價值第二的物品,如此往復,直到書包放。

3.在我寫的程式中使用了二維陣列的按列排序。

for(k=0;j0;x--)}}

} 結果

時間記憶體

語言accepted

0240c

**:

#include

#include

#include

using namespace std;

struct nodevw[12];             //定義乙個結構體陣列,用來存放每個物品的單位價值和重量(即有多少該物品) ;

int cmp(node x,node y)

int main()

else

}printf("%d\n",sum);

}return 0;}

揹包問題 01揹包問題

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

oj 1046 採藥 0 1 揹包問題

題目要求 description 辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到乙個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給...

揹包問題 01揹包

有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。01揹包中的 01 就是一種物品只有1件,你可以選擇放進去揹包即1,也可以選擇不放入揹包中即0。include include using namespace std const int ...