NY 106 揹包問題(可分割) 貪心

2021-08-20 06:49:30 字數 700 閱讀 1828

時間限制: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

樣例輸出

思路:按照單位重量的價值v進行排序.ac**如下:

#include#includeusing namespace std;

struct inpnode[11];

int cmp(inp a,inp b)

int main()

sort(node,node+n,cmp); //按價值大小進行排序

j=0;

for(i=0;ielse

} cout<} return 0;

}

NY106 揹包問題

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

貪心法之可分割揹包問題

複習演算法至貪心法,書上的舉例是可分割的揹包問題。可分割揹包問題很容易理解,只需要根據收益和重量的比值進行排序,首選比值較大者填入即可,若物品種類大於剩餘載重量,則填充剩餘載重量的此物品,在剩餘載重量足夠的情況下,依次將物品填入揹包即可。這應該是揹包問題中最為簡易的了,待熬過這段時間的考試,準備好好...

揹包問題 可分割

可分割的揹包問題 即挑菜單位價值最大的物品裝入即可。寶物 i12 3456 78910 重量w i 42 9558 5455 價值v i 38 186820 56715 求裝入寶物的最大價值,以及裝入寶物的序號。include include using namespace std 需要乙個結構體,...