01 ,完全 揹包 理解篇

2021-06-08 11:03:54 字數 822 閱讀 5731

//pku3624

//f[v] 把第i件物品放入容量為v的揹包所獲得的價值

#include#include#includeusing namespace std;

int max(int a,int b)

int val[3405],c[3405],f[100 * 3500];

int main()

/* for(j=v;j>=0;j--)//觀察結果

printf("%d ",f[j]);

printf("\n");

*/ }

printf("%d\n",f[v]);

system("pause");

} /*

4 61 4

2 63 12

2 7*/

//acm hdu 1114 piggy-bank (完全揹包問題)

#include#define inf 0x7ffffff

#define min(a,b) aint v[505],w[505],dp[10005];

int main()

if(dp[w]==inf) printf("this is impossible.\n");

else

printf("the minimum amount of money in the piggy-bank is %d.\n",dp[w]);

}return 0;}/*

43 13

44 5

2 35 4

3 2*/

01揹包,完全揹包

動態規劃 動態規劃的核心是狀態以及狀態轉移方程。需要定義乙個 i,j 狀態以及該狀態的指標函式d i,j 01揹包 有n種物品,每種只有乙個,第i件物品的體積為vi質量為wi。選一些物品裝到體積為c的揹包中,使其體積不超過c的前提下重量最大。namevw abcd e 子問題定義 dp i j 表示...

01揹包 完全揹包

本文主要使用一維陣列進行使用 意思 01揹包 代表物品只有兩種狀態,只能使用一次。如,dp i max dp i dp i wight j value j 代表容量為i所獲得的最大利潤。完全揹包 乙個物品可以使用無限次 技巧 1.如果是0 1揹包,即陣列中的元素不可重複使用,nums放在外迴圈,ta...

0 1揹包與完全揹包

現有 n 件物品,乙個最大容量為 w 的揹包。第 i 件物品重量為 wi 價值為 vi 已知對於一件物品,你必須選擇取或不取,且每件物品只能被取一次 這就是 0 1 的含義 求放置哪幾件物品進揹包,使得揹包中物品價值最大 或是求最大價值是多少等衍生問題 設 ans n,w 為當揹包容重量為 w 有 ...