zoukankan      html  css  js  c++  java
  • HDU 1114 完全背包+判断能否装满

    题意 给出一个存钱罐里的钱币重量 给出可能的n种钱币重量以及价值 求存钱罐中钱币的最小价值 若不可能另有输出

    在裸的完全背包上加了一点东西 即判断这个背包能否被装满

    初始化 dp[0]=0 其余的都使用for循环设置成INF 以达到求min的目的

    最后如果dp[v]还是那么大就说明它根本没有通过前面的方式被改变 即 不能被装满

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<map>
    #include<math.h>
    using namespace std;
    int e,f;
    int val[505];
    int vol[505];
    int dp[10050];
    int main(){
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&e,&f);
        int v=(f-e);
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&val[i],&vol[i]);
        }
        dp[0]=0;
        for(int i=1;i<=v;i++)
        {
            dp[i]=500000000;
        }
        for(int i=1;i<=n;i++)
        {
            for(int k=vol[i];k<=v;k++)
            {
                dp[k]=min(dp[k],dp[k-vol[i]]+val[i]);
            }
        }
        if(dp[v]==500000000)
        {
            printf("This is impossible.
    ");
        }
        else printf("The minimum amount of money in the piggy-bank is %d.
    ",dp[v]);
    }
    }
    

      

  • 相关阅读:
    LeetCode——37. 解数独
    LeetCode ——42. 接雨水
    异常
    IO/FILE
    函数与模块
    选择与循环
    运算符
    字符串、列表、元组等
    SVTyper
    Error:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-not69mld/pysam/
  • 原文地址:https://www.cnblogs.com/rayrayrainrain/p/5309210.html
Copyright © 2011-2022 走看看