zoukankan      html  css  js  c++  java
  • hdu 1114需要装满的完全背包 重点是背包初始化的问题

    。,。 最近在看背包九讲 所以就刷了一下背包的题目 这道题目是一个典型的完全背包问题 而且要求满包

    在这里 我就简单整理一下背包初始化问题吧  

    对于没有要求满包的问题 也就是背包可以不取满的问题 在背包初始化的时候 可以全部初始化为0(inf)因为不要求其满包 所以 在求解的过程中 就不用强求从第一个点开始取

    而对于满包的问题 则必须是从dp[0]这个有效的点开始存放的 其他都必须初始化为无效状态 因为如果需要满包 则必须从0这个状态开始的后续状态才满足条件

    。,。 写的有点乱 借鉴一下其他人的。,。

    上代码

    #include<cstdio>
    #include<string.h>
    #include<iostream>
    #define INF 11111111
    using namespace std;
    int main()
    {
        int t,e,f;
        cin>>t;
        int w[501],p[501];
        int dp[10001];
        dp[0]=0;
        while(t--)
        {
            cin>>e>>f;
            int n,wmax;
            wmax=f-e;
        //    cout<<wmax<<endl;
            cin>>n;
            for(int i=1;i<=n;i++) cin>>p[i]>>w[i];
            for(int i=1;i<=wmax;i++) dp[i]=INF;
            dp[0]=0;
            for(int i=1;i<=n;i++)
            {
                for(int j=w[i];j<=wmax;j++)  dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
            }
            int ans;
            if(dp[wmax]>=11111110) ans=0;
            else ans=dp[wmax];
            if(ans==0)    printf("This is impossible.
    ");
            else printf("The minimum amount of money in the piggy-bank is %d.
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    P6057 [加油武汉]七步洗手法
    LC 1349. Maximum Students Taking Exam (Hungarian / Max Flow)
    P1879 [USACO06NOV]玉米田Corn Fields
    P1433 吃奶酪 (TSP)
    LC 1349. Maximum Students Taking Exam
    获取XML中的值
    TimeZoneInfo类的使用
    XML 克隆节点
    网络协议概述:物理层、连接层、网络层、传输层、应用层详解
    Vuex
  • 原文地址:https://www.cnblogs.com/z1141000271/p/5761325.html
Copyright © 2011-2022 走看看