hdu 1114 Piggy-Bank

来源:互联网 发布:免费bpm软件 编辑:程序博客网 时间:2024/04/19 18:13

http://acm.hdu.edu.cn/showproblem.php?pid=1114

题意:用最少的价值装存钱罐,完全背包

如下图:(0-->11)


假如:求最大的价值,把f[i]初始化-MAX即可

#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int NM=10005;const int MAX=0x3fffffff;  //初始化int f[NM],wei[505],vau[505];int main(){int T,V,x1,x2,n,i,j;scanf("%d",&T);while(T--){scanf("%d%d",&x1,&x2);scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d%d",&vau[i],&wei[i]);V=x2-x1;f[0]=0;  //f[0]=MAX;for(j=1;j<=V;j++)f[j]=MAX;  //初始化for(i=1;i<=n;i++){for(j=wei[i];j<=V;j++){if(f[j]>f[j-wei[i]]+vau[i])f[j]=f[j-wei[i]]+vau[i];  //完全背包(顺序)会利用到前面的结果}}if(f[V]<MAX)printf("The minimum amount of money in the piggy-bank is %d.\n",f[V]);else printf("This is impossible.\n");  //不完全装满}return 0;}

原创粉丝点击