NYOJ 貪心演算法 106 揹包問題

2021-08-22 16:31:10 字數 772 閱讀 6657

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:3

描述現在有很多物品(它們是可以分割的),我們知道它們每個物品的單位重量的價值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
這道題與01揹包問題並不一樣。因為這道題的物品時刻以分割的。這樣題就變得很容易了。我們只需對所有物品的價值進行從小到大排序,或從大到小排序,依次讓當前揹包容量減去當前最**值物品的重量,當物品重量大於當前揹包剩餘容量時,以當前揹包剩餘容量為最終標準。

**如下:

#include#includeusing namespace std;

int main()

for(i=0;ivw[j][0])

}t=vw[s-1][1];

p=m;

for(i=s-1;i>=0;i--)

cout<}

return 0;

}

NYOJ 106 揹包問題 貪心,水

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入...

NYOJ 106 揹包問題(經典貪心)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入...

nyoj 106揹包問題(貪心專題)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入乙...