揹包問題(貪心)

2021-09-29 04:46:46 字數 879 閱讀 6499

現在有很多物品(它們是可以分割的),我們知道它們每個物品的單位重量的價值v和重量w(1<=v,w<=10);如果給你乙個揹包它能容納的重量為m(10<=m<=20),你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。

第一行輸入乙個正整數n(1<=n<=5),表示有n組測試資料; 隨後有n測試資料,每組測試資料的第一行有兩個正整數s,m(1<=s<=10);s表示有s個物品;m表示此揹包能容納的重量。接下來的s行每行有兩個正整數v,w。

輸出每組測試資料中揹包內的物品的價值和,每次輸出佔一行。

1

3 15

5 10

2 83 9

//思想 按照**從大到小排列 先裝**高的;怎麼去裝 就是「乙個乙個」地去看能否裝進包裡(包的容量逐漸減小)

#include

#include

using

namespace std;

struct node str[

1005];

bool

cmp(node x,node y)

else

}int

main()

sort

(str,str+s,cmp)

;// for(int i=0;i

// printf("%d %d\n",str[i].v,str[i].w);

// }

for(

int i=

0; i)else

}printf

("%d\n"

,sum);}

return0;

}

貪心揹包問題

有乙個揹包,揹包容量是m 150。有7個物品,物品可以分割成任意大小。要求盡可能讓裝入揹包中的物品總價值最大,但不能超過總容量。物品 a b c d e f g 重量 35 30 60 50 40 10 25 價值 10 40 30 50 35 40 30 分析 目標函式 pi最大 約束條件是裝入的...

貪心 揹包問題

問題描述 有一天,阿里巴巴趕著一頭毛驢上山砍柴。砍好柴準備下山時,遠處突然出現一股煙塵,瀰漫著直向上空飛揚,朝他這兒卷過來,而且越來越近。靠近以後,他才看清原來是一支馬隊,他們共有四十人,乙個個年輕力壯 行動敏捷。乙個首領模樣的人揹負沉重的鞍袋,從叢林中一直來到那個大石頭跟前,喃喃地說道 芝麻,開門...

NYOJ 揹包問題(貪心)

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