//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 有 ...