題目描述
已知有乙個可容納重量為c的揹包以及n件物品,其中第i件物品的重量為wi,每件物品的價值為pi(pi>0)。怎樣向背包裝如物品,才能使裝入揹包的物品的價值最大,程式設計求出最大價值(一件物品可以部分裝入,部分裝入是要合理、近似的裝入,除不盡時,保留兩位小數)。
輸入物品件數n
揹包容量c
每件物品的重量和價值
輸出最大價值
樣例輸入330
20 40
15 25
15 25
樣例輸出
56.66
分析:本題,是典型的貪心問題。因為可以近似的裝入。所以,我們需要考慮的是每乙個單位重的物品的對應的價值。即15 25 這個物品的每乙個單位重的價值是25/15。所以我們需要做的是將這些物品按照每乙個單位重的價值進行降序排序。
**如下:
#include"stdio.h"
#include"string.h"
int main()
else
i++;
if(c==0)
break;
}printf("%0.2lf\n",(int)(p*100)/100.0);
}}
貪心揹包問題
有乙個揹包,揹包容量是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最大 約束條件是裝入的...
貪心 揹包問題
問題描述 有一天,阿里巴巴趕著一頭毛驢上山砍柴。砍好柴準備下山時,遠處突然出現一股煙塵,瀰漫著直向上空飛揚,朝他這兒卷過來,而且越來越近。靠近以後,他才看清原來是一支馬隊,他們共有四十人,乙個個年輕力壯 行動敏捷。乙個首領模樣的人揹負沉重的鞍袋,從叢林中一直來到那個大石頭跟前,喃喃地說道 芝麻,開門...
揹包問題(貪心)
現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。第一行輸入乙個正整數n 1 n 5 表示有n組測試資料 隨後有n測試資料,每組測試資料...