時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3
描述
有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w
的物品,求所有挑選方案中物品價值總和的最大值。
1 <= n <=100
1 <= wi <= 10^7
1 <= vi <= 100
1 <= w <= 10^9
輸入多組測試資料。
每組測試資料第一行輸入,n 和 w ,接下來有n行,每行輸入兩個數,代表第i個物品的wi 和 vi。
輸出滿足題意的最大價值,每組測試資料佔一行。
樣例輸入
4 52 31 2
3 42 2
樣例輸出
7
思路:宇神太強了,教會了我太多,受益匪淺;由於重量太大,陣列儲存不了,以前是體積一定求最大價值,這次變形是價值為區間,求最小體積;
//01揹包變形,價值一定求最小體積;
#include#include#include#includeusing namespace std;
#define inf 0x3f3f3f3f
int dp[100100],w[1010],v[1010];
int main()
} for(int j=sum;j>=0;j--) //價值遞減;
} } return 0;
}
0 1揹包變形題
將乙個陣列分成兩部分,不要求兩部分所包含的元素個數相等,要求使得這兩個部分的和的差值最小。比如對於陣列,可以分成和,使得這兩部分的差值最小。這道題為什麼說是0 1揹包問題的變形呢,因為0 1揹包問題是每個蘋果裝或者不裝,使得能裝的總重量最重,這道題也類似,什麼時候兩個陣列的和的差值最小呢?當然是都為...
nyoj 860 又見01揹包 01 揹包變形
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w 的物品,求所有挑選方案中物品價值總和的最大值。1 n 100 1 wi 10 7 1 vi 100 1 w 10 9 輸入多組測試資料。每組測試資...
NYOJ 860 又見01揹包(01揹包變形)
題目鏈結 題目描述 有n個重量和價值分別為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 w 的物品,求所有挑選方案中物品價值總和的最大值。1 n 100 1 wi 10 7 1 vi 100 1 w 10 9 輸入多組測試資料。每組測試資料第一行輸入,n 和 w 接下來有n行,每行輸入兩個...