給定n個物品和乙個容量為c的揹包,物品i的重量是wi,其價值為vi。揹包問題是如何選擇裝入揹包的物品,使得裝入揹包中的物品總價值最大?(物品可以分割)
單組資料輸入。
第一行:兩個整數n和c。表示物品的個數和揹包的容量。(1≤n≤1000,0≤c≤100000)
下面有n行,每行有兩個整數wi和vi,分別表示每個物品的重量和價值。(0≤wi≤1000,0≤vi≤1000)
第一行:乙個浮點數,表示能裝入揹包的最大價值v。v保留小數點後兩位
第二行:n個整數,表示n個物品裝入揹包的重量。並以空格隔開。(按輸入順序排列,即第乙個數為物品1裝入揹包的重量)
3 50
20 60
30 120
10 50
200.00
10 30 10
貪心策略
10×3+30×4+10×5=200
#include using namespace std;
struct hhh;
bool cmp(hhh x,hhh y)
bool cmp2(hhh x,hhh y)
sort(a,a+n,cmp);
for(i=0;i可分割的揹包問題重點在排序。
演算法(揹包問題 01揹包問題)
01揹包問題 有 n 件物品和乙個容量是 v 的揹包。每件物品只能使用一次。第 i 件物品的體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 n 行,...
演算法 揹包問題
揹包問題用逆序減少空間複雜度的情況下,揹包問題,如果是多維揹包 質量,容積,個數 則加矩陣維度 如果是01揹包,則逆序內迴圈,如果是完全揹包 每種物品個數不限 則順序內迴圈,如果是混合揹包 限制每種物品的個數 include using namespace std define maxn 110 d...
演算法 揹包問題
什麼是揹包問題呢?就是乙個特定載重的揹包,給你乙個資料表,求解其最優的結果,那麼很顯然嘍 這就是乙個優化問題 那麼我們具體一點!這個揹包載重8千克 李子 4kg 4500元 蘋果 5kg 5700元 士多啤梨 1kg 1100元 橘子 2kg 2250元 甜瓜 6kg 6700元 那,我們使用動態規...