• Piggy-Bank(HDU 1114)背包的一些基本变形


    Piggy-Bank  HDU 1114

    初始化的细节问题:

    因为要求恰好装满!!

    所以初始化要注意:

    初始化时除了F[0]为0,其它F[1..V]均设为−∞。

    又这个题目是求最小价值

    则就是初始化时除了F[0]为0,其它F[1..V]均设为∞。

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<algorithm>
     4 #include<string.h>
     5 using namespace std;
     6 const int inf=1000005;
     7 int a[505],b[505],dp[10005];
     8 int main()
     9 {
    10     int t,n,n1,m,i,j;
    11     scanf("%d",&t);
    12     while(t--)
    13     {
    14         scanf("%d%d",&n,&n1);
    15         n=n1-n;
    16         scanf("%d",&m);
    17         for(i=0;i<m;i++)
    18             scanf("%d%d",&a[i],&b[i]);
    19         memset(dp,inf,sizeof(dp));
    20         dp[0]=0;
    21         for(i=0;i<m;i++)
    22             for(j=b[i];j<=n;j++)
    23             dp[j]=min(dp[j],dp[j-b[i]]+a[i]);
    24         if(dp[n]<=inf)
    25             printf("The minimum amount of money in the piggy-bank is %d.
    ",dp[n]);
    26         else
    27             printf("This is impossible.
    ");
    28     }
    29     return 0;
    30 }

    还有:

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<algorithm>
     4 #include<string.h>
     5 using namespace std;
     6 const int inf=1000005;
     7 int a[505],b[505],dp[10005];
     8 int main()
     9 {
    10     int t,n,n1,m,i,j;
    11     scanf("%d",&t);
    12     while(t--)
    13     {
    14         scanf("%d%d",&n,&n1);
    15         n=n1-n;
    16         scanf("%d",&m);
    17         for(i=0;i<m;i++)
    18             scanf("%d%d",&a[i],&b[i]);
    19         for(i=1;i<=n;i++)
    20             dp[i]=inf;
    21         dp[0]=0;
    22         for(i=0;i<m;i++)
    23             for(j=b[i];j<=n;j++)
    24             dp[j]=min(dp[j],dp[j-b[i]]+a[i]);
    25         if(dp[n]!=inf)
    26             printf("The minimum amount of money in the piggy-bank is %d.
    ",dp[n]);
    27         else
    28             printf("This is impossible.
    ");
    29     }
    30     return 0;
    31 }

     

  • 相关阅读:
    Entity Framework+SQLite+DataBaseFirst
    接口的实现方式(显示和隐示)及协变和逆变
    C#线程
    UIScrollView放大缩小图片偏移的问题
    SQL Server 2008在添加用户时弹出错误提示:此版本的 Microsoft Windows 不支持 MUST_CHANGE 选项
    jmeter的正则表达式的使用
    Linux下安装jmeter
    系统测试方案
    [ASP.NET].NET逻辑分层架构总结
    [C#]C#时间日期操作
  • 原文地址:https://www.cnblogs.com/tt123/p/3291603.html
Copyright © 2020-2023  润新知