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

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

对于没有要求满包的问题 也就是背包可以不取满的问题 在背包初始化的时候 可以全部初始化为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[],p[];
int
dp[];
dp[]=;
while
(t--)
{

cin>>e>>f;
int
n,wmax;
wmax=f-e;
// cout<<wmax<<endl;
cin>>n;
for
(int i=;i<=n;i++) cin>>p[i]>>w[i];
for
(int i=;i<=wmax;i++) dp[i]=INF;
dp[]=;
for
(int i=;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]>=) ans=;
else
ans=dp[wmax];
if
(ans==) printf("This is impossible.\n");
else
printf("The minimum amount of money in the piggy-bank is %d.\n",ans);
}

return
;
}

hdu 1114需要装满的完全背包 重点是背包初始化的问题的更多相关文章

  1. HDU 1114 Piggy-Bank 猪仔储钱罐(完全背包)

    题意: 给定一个存钱罐中要存硬币,知道空罐的重量和欲装满的重量,是否能装入?若能,打印最小价值.(注:能装的硬币重量一定刚刚好,里面的总价值要达到最小) 输入: 包含了T个测试例子,在第一行给出.接下 ...

  2. 背包!背包!HDU 2602 Bone Collector + HDU 1114 Piggy-Bank + HDU 2191 512

    http://acm.hdu.edu.cn/showproblem.php?pid=2602 第一题 01背包问题 http://acm.hdu.edu.cn/showproblem.php?pid= ...

  3. HDU 1114 完全背包 HDU 2191 多重背包

    HDU 1114 Piggy-Bank 完全背包问题. 想想我们01背包是逆序遍历是为了保证什么? 保证每件物品只有两种状态,取或者不取.那么正序遍历呢? 这不就正好满足完全背包的条件了吗 means ...

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

    Piggy-Bank  HDU 1114 初始化的细节问题: 因为要求恰好装满!! 所以初始化要注意: 初始化时除了F[0]为0,其它F[1..V]均设为−∞. 又这个题目是求最小价值: 则就是初始化 ...

  5. HDOJ(HDU).1114 Piggy-Bank (DP 完全背包)

    HDOJ(HDU).1114 Piggy-Bank (DP 完全背包) 题意分析 裸的完全背包 代码总览 #include <iostream> #include <cstdio&g ...

  6. HDU 1114 Piggy-Bank(一维背包)

    题目地址:HDU 1114 把dp[0]初始化为0,其它的初始化为INF.这样就能保证最后的结果一定是满的,即一定是从0慢慢的加上来的. 代码例如以下: #include <algorithm& ...

  7. hdu 1114 dp动规 Piggy-Bank

    Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit S ...

  8. 怒刷DP之 HDU 1114

    Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit S ...

  9. HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)

    HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包) 题意分析 与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数.同时for循环 ...

随机推荐

  1. gdal 遥感影像水体数据提取

  2. madam、Linux LVM的使用

    .RaidRAID(独立冗余磁盘阵列)概念:RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提 ...

  3. C# using语句 中间出现exception后 using仍然会dispose

    C# using语句,中间出现exception后,using仍然会dispose,因为: using语句 相当于 try-finally{dispose()}

  4. 【Leetcode_easy】599. Minimum Index Sum of Two Lists

    problem 599. Minimum Index Sum of Two Lists 题意:给出两个字符串数组,找到坐标位置之和最小的相同的字符串. 计算两个的坐标之和,如果与最小坐标和sum相同, ...

  5. 【Leetcode_easy】594. Longest Harmonious Subsequence

    problem 594. Longest Harmonious Subsequence 最长和谐子序列 题意: 可以对数组进行排序,那么实际上只要找出来相差为1的两个数的总共出现个数就是一个和谐子序列 ...

  6. jQuery和ajax【“Asynchronous Javascript And XML】

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  7. jenkins的slave/agent如何通过tcp端口和master建立连接

    Jenkins是master-slave/agent结构,可以通过代理把任务下发到各个agent/slave上去执行 如图,首先在master上开启代理配置,指定master上开启的tcp端口,以及和 ...

  8. Moq中注入dynamic方法出错

    1.dynamic不可以跨程序集使用 2.需要在Test的AssemblyInfo.cs中里加 [assembly: InternalsVisibleTo("DFYYDream.UI.Web ...

  9. 用MOQ来Mock静态方法的 2种方法(含Moq和Fakes的配合使用)

    Moq是无法直接模拟静态方法的,解决方式有两种: 1.需要修改正式代码,在源代码中建一个新的方法把静态方法包起来,调用的时候源代码调用时调用新方法而不是原来的静态方法. 在测试的时候,Mock掉这个新 ...

  10. openstack环境-解决windows虚机重启后比当前时间晚8小时问题

    背景: 生产环境下,发现windows虚机每次重启,时间都会倒退到虚机的格林威治时间(+8小时才是北京时间),也就是比当前时间晚8小时.测试发现,windows虚机所用的镜像,缺少了一个os_type ...