南陽題目106 揹包問題

2021-07-11 03:18:49 字數 846 閱讀 1472

時間限制:

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

**[苗棟棟]原創

上傳者這個題目就是典型的貪心問題了,按照單位價值的大小排序,然後裝揹包,如果可以裝下這一類,就直接裝進去,如果不能,就將此類分割,然後裝進去,正好裝滿時價值最大,這類題目和揹包問題的最大區別就是此類問題的物品可以分割

#include#include#includeusing namespace std;

struct node

s[10010];

bool cmp(node x,node y)

int main()

{ int m,n,m,i,j,a,b;

scanf("%d",&m);

while(m--)

{ scanf("%d%d",&m,&n);

for(i=0;i

南陽oj106 揹包問題

描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入 第一行輸入乙個正整數n 1 n 5 表示有n組測試資料 隨後有n測試資料,...

南陽oj 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 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入乙...