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]);

            

        }

    }

  • 相关阅读:
    javascript创建类的6种方式
    c#匿名类型
    flex中在basewidget中不能使用图表组件问题
    Xamarin 后台持续定位与提示
    Net 并行知识学习
    占位
    axis 入门【原】
    Oracle存储过程procedure in、out、in out 模式参数【不发布,纯转】
    poi读取写入excel【未完,待续】
    poi读取写入word【未完,待续】
  • 原文地址:https://www.cnblogs.com/mltang/p/8720376.html
Copyright © 2011-2022 走看看