HDU 1114 Piggy-Bank
Posted siv0106
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1114 Piggy-Bank相关的知识,希望对你有一定的参考价值。
这题是完全背包啊。
与众不同的是它是用背包取的最小值,所以边界条件有讲究:dp[0]=0,其他的赋值为inf(无穷大),这样方便取min操作。
#include<bits/stdc++.h> using namespace std; const int inf=0x3fffff,N=510; int dp[N*20],v[N],w[N]; int main() { int t,n,e,f,m; scanf("%d",&t); while(t--) { scanf("%d%d",&e,&f); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d",&v[i],&w[i]); m=f-e; for(int i=1;i<=m;i++) dp[i]=inf; dp[0]=0; for(int i=1;i<=n;i++) for(int j=w[i];j<=m;j++) dp[j]=min(dp[j],dp[j-w[i]]+v[i]); if(dp[m]<inf) printf("The minimum amount of money in the piggy-bank is %d. ",dp[m]); else printf("This is impossible. "); } return 0; }
以上是关于HDU 1114 Piggy-Bank的主要内容,如果未能解决你的问题,请参考以下文章