設有n 種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n 種物品中選取若干件(同一種物品可以多次選取),使其重量的和小於等於m,而價值的和為最大。
第一行:兩個整數,m(揹包容量,m<= 200)和n(物品數量,n<= 30); 第2…n+1 行:每行二個整數wi,ui,表示每個物品的重量和價值。
僅一行,乙個數,表示最大總價值。
1242
1334
579
15
完全揹包相比01揹包唯一的差距就在程式中的c[i][j]=max(c[i-1][j],c[i][j-a[i]]+b[i]);
除了這個差距,其他跟ssl_1045【採藥】完全一樣
只不過最大值取的時候不是從沒有這乙個物品的一行取,而是從擁有這乙個物品的本行取。
上**!
#include
#include
using
namespace std;
int n,m,a[
1001
],b[
1001
],c[
1001][
1001
],t=0;
intmain()
}for
(int i=
1;i<=m;i++
) cout
}
SSL 1376 完全揹包
description 設有n 種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n 種物品中選取若干件 同一種物品可以多次選取 使其重量的和小於等於m,而價值的和為最大。input 第一行 兩個整數,m 揹包容量,m 200 和n 物品數量,n 3...
01揹包,完全揹包
動態規劃 動態規劃的核心是狀態以及狀態轉移方程。需要定義乙個 i,j 狀態以及該狀態的指標函式d i,j 01揹包 有n種物品,每種只有乙個,第i件物品的體積為vi質量為wi。選一些物品裝到體積為c的揹包中,使其體積不超過c的前提下重量最大。namevw abcd e 子問題定義 dp i j 表示...
(揹包二)完全揹包
public class beibaocomplete int weight int capacity 8 int value int weight int capacity 12 int result packagecomplete value,weight,capacity system.out...