nyoj860 01揹包變形 好題

2021-07-28 03:07:42 字數 791 閱讀 3168

時間限制:

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 5

2 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行,每行輸入兩個...