zoukankan      html  css  js  c++  java
  • HDU1114 Piggy-Bank 完全背包

    题意:

    给出一个存钱罐的空罐时的质量和装了钱之后的质量,再给出一些硬币的质量和相应的价值,问存钱罐里的钱最少可能为多少。

    这道题就是完全背包的问题,注意初始化。

    完全背包与01背包不同的是第二次遍历的时候要顺序而已。

    初始化,这道题要求背包恰好装满,而且要求的值尽量少,所以dp[0]=0;其余设为无穷大。

    1.若没有要求恰好装满,则全为0.

    2.若要求的值尽量大,则dp[0]=0;其余为无穷小。

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 const int maxn=10000+10;
     5 const int inf=0x3f3f3f3f;
     6 int dp[maxn];
     7 int main()
     8 {
     9     int test;
    10     scanf("%d",&test);
    11     while(test--)
    12     {
    13         int e,f;
    14         scanf("%d%d",&e,&f);
    15         int m=f-e;
    16         dp[0]=0;
    17         for(int i=1;i<=m;i++)
    18             dp[i]=inf;
    19         int p,w,n;
    20         scanf("%d",&n);
    21         for(int i=1;i<=n;i++)
    22         {
    23             scanf("%d%d",&p,&w);
    24             for(int j=w;j<=m;j++)
    25             {
    26                 dp[j]=min(dp[j],dp[j-w]+p);
    27             }
    28         }
    29         if(dp[m]==inf)
    30             printf("This is impossible.
    ");
    31         else
    32             printf("The minimum amount of money in the piggy-bank is %d.
    ",dp[m]);
    33     }
    34     return 0;
    35 }
    View Code
  • 相关阅读:
    codeblocks基本调试方法—gdb—Debugger
    五大开源Web服务器
    【u237】分数化小数
    【u230】回文词
    【t099】最接近神的人
    【t052】冰岛
    【t069】奇怪的迷宫
    【p092】分数线划定
    【u243】拓扑排序
    【u247】生物进化
  • 原文地址:https://www.cnblogs.com/-maybe/p/4380867.html
Copyright © 2011-2022 走看看