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的主要内容,如果未能解决你的问题,请参考以下文章

C - Piggy-Bank HDU - 1114

[2016-03-27][HDU][1114][Piggy-Bank]

HDU 1114 Piggy-Bank

hdu1114Piggy-Bank

HDU 1114 Piggy-Bank(完全背包)

HDU-1114_Piggy-Bank