蒜頭君的購物袋3 (完全揹包)

2022-09-01 15:18:16 字數 725 閱讀 9314

問題描述

蒜頭君去超市購物,他有乙隻容量為 v 的購物袋,同時他想買 nn 種物品,已知每種物品的體積 vi和重要度 pi 。蒜頭君想知道,怎麼挑選物品放入購物袋中,可以使得買到的物品重要度之和最大,且物品體積和不超過購物袋的容量。注意超市中每種物品的數量無限多。 

輸入格式

第一行輸入兩個整數 n, v (1≤n≤1,000,1≤v≤10,000)。 

接下來輸入 n 行,每行輸入兩個整數 vi和pi(1≤vi,pi≤10,000),分別表示第 i 種物品的體積和重要度。 

輸出格式

輸出一行,輸出乙個整數,表示能買到物品的最大重要度之和。 

樣例輸入

4 20 

3 7 

2 5 

4 6 

5 9 

樣例輸出

50

#include#includeusing namespace std;

int main()

for (int i = 1; i <= n; ++ i)

for (int j = v[i]; j <= v; ++ j)

dp[j] = max(dp[j - v[i]] + p[i], dp[j]);

cout

}

完全揹包問題 蒜頭君的購物袋3

完全揹包問題 當前有n種物品,第i種物品的體積是ci,價值是wi 每種物品的數量都是無限的,可以任意選擇若干件,稱之為完全揹包問題 現在有容量為v的揹包,放入若干物品,使總體積不超過v,並且總價值盡可能大。for int i 1 i n i include includeusing namespac...

蒜頭君的購物袋3

蒜頭君去超市購物,他有乙隻容量為 v 的購物袋,同時他想買 n 種物品,已知每種物品的體積 vi和重要度 pi 蒜頭君想知道,怎麼挑選物品放入購物袋中,可以使得買到的物品重要度之和最大,且物品體積和不超過購物袋的容量。注意超市中每種物品的數量無限多。輸入格式 第一行輸入兩個整數 n,v 1 n 1,...

蒜頭君的購物袋2

蒜頭君去超市購物,他有乙隻容量為 vv 的購物袋,同時他想買 nn 件物品,已知每件物品的體積 v ivi 和重要度 p ipi 蒜頭君想知道,挑選哪些物品放入購物袋中,可以使得買到的物品重要度之和最大,且物品體積和不超過購物袋的容量。輸入格式 第一行輸入兩個整數 vv 1 leq v leq 10...