首页 > 代码库 > hduPiggy-Bank(完全背包)
hduPiggy-Bank(完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1114
此题就是最简单的完全背包,顺序!!!
for i=1..N
for v=0..V
f[v]=max{f[v],f[v-cost]+weight}
#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000001int dp[10005];int main(){ int T,E,V,n; int w[502],v[502]; scanf("%d",&T); while(T--) { scanf("%d%d",&E,&V); V=V-E; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d%d",&v[i],&w[i]); } for(int i=0;i<=V;i++) dp[i]=N; dp[0]=0; for(int i=1;i<=n;i++) { for(int j=w[i];j<=V;j++) { if(dp[j-w[i]]+v[i]<dp[j]) dp[j]=dp[j-w[i]]+v[i]; } } if(dp[V]==N) printf("This is impossible.\n"); else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[V]); } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。