zoukankan      html  css  js  c++  java
  • hdu 1114

    完全背包问题

    让你尽可能的少装价值,装满背包

    就把dp[0]=0即可,其他变成inf,然后就是标准的完全背包问题

    代码:

    #include <iostream>

    #include <algorithm>

    #include <cstring>

    #include <cstdlib>

    using namespace std;

    const int maxn = 1e6+5;

    long long dp[maxn];

    int w[maxn],v[maxn];

    int main()

    {

        int i,j,t,a,b,c,n,k;

        scanf("%d",&t);

        while(t--)

        {

            scanf("%d%d",&a,&b);

            scanf("%d",&n);

            for(i = 1; i <= n; ++i)

                scanf("%d%d",v+i,w+i);

            

            c = b-a;

            dp[0] = 0;

            for(i = 1; i <= c; ++i)

                dp[i] = 100000000;

            for(i = 1; i <= n;++i)

            {

                for(j = w[i];j <= c; ++j)

                {

                    dp[j] = min(dp[j],dp[j-w[i]]+v[i]);

                }

            }

            

            if(dp[c]==100000000)

                printf("This is impossible. ");

            else

                printf("The minimum amount of money in the piggy-bank is %lld. ",dp[c]);

            

        }

    }

  • 相关阅读:
    Sqoop的导入及可能遇到的问题
    Docker搭建MongoDB集群(副本分片)
    微信小程序框架部署:mpvue+typescript
    关系型数据库与非关系型数据库
    PWA 学习笔记(五)
    PWA 学习笔记(四)
    PWA 学习笔记(三)
    PWA学习笔记(二)
    PWA 学习笔记(一)
    部分设计模式对比分析
  • 原文地址:https://www.cnblogs.com/mltang/p/8720376.html
Copyright © 2011-2022 走看看