简单的完全背包HDU1114
今天广州下雨啦,不过没关系啦,反正我最近也都在刷题学习算法。
昨天做了五题01背包,今天还是背包,不过是完全背包,估计做动态规划要持续好一段时间,一开始选了一道简单题目啦。
HDU1114,看了小一段时间,动手打代码,测调后感觉很NICE,交上去就WA了。
后来,是我的MAX值给得太小了。果断加两个零,马上就A掉了。
完全背包的思路和01背包很相似,就是在循环时候有点不同。
01背包的是:
memset(dp,0,sizeof(dp));
memset(v,0,sizeof(v));
memset(w,0,sizeof(w));
for(i=1;i<=n;i++)
for(j=V;j>=v[i];j--) //v是volume,w是weight
dp[j]=max{dp[j],dp[j-v[i]]+w[i] }
完全背包是:
memset(dp,0,sizeof(dp));
memset(v,0,sizeof(v));
memset(w,0,sizeof(w));
for(i=1;i<=n;i++)
for(j=v[i];j<=V;j++) //循环不同
dp[j]=max{dp[j],dp[j-v[i]]+w[i] }
这道题要求的是恰好装满了,所以初始要给无穷,dp[0]=0.当然,因为这个是求最坏,所以给的是无穷大。
附上代码
/*******************************************************************************/
/* OS : 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 UTC 2013 GNU/Linux
* Compiler : g++ (GCC) 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
* Encoding : UTF8
* Date : 2014-03-09
* All Rights Reserved by yaolong.
*****************************************************************************/
/* Description: complete package*********************************************
*****************************************************************************/
/* Analysis: ******************************************************************
*****************************************************************************/
/*****************************************************************************/
//* #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define MAX_N 1000003
int v[MAX_N],w[MAX_N],dp[MAX_N];
int min(int a,int b){
return a>b?b:a;
}
int main(){
// freopen("in.txt","r",stdin);
int cases,E,F,N,i,j,W;
cin>>cases;
while(cases--){
cin>>E>>F;
cin>>N;
W=F-E;
memset(v,0,sizeof(v));
memset(w,0,sizeof(w));
for(i=1;i<=W;i++){
dp[i]=MAX_N; }
dp[0]=0;
for(i=1;i<=N;i++){
cin>>v[i]>>w[i];
} for(i=1;i<=N;i++)
for(j=w[i];j<=W;j++){
dp[j]=min(dp[j],dp[j-w[i]]+v[i]);
}
if(dp[W]!=MAX_N){ cout<<"The minimum amount of money in the piggy-bank is "<<dp[W]<<"."<<endl;
}else{
cout<<"This is impossible."<<endl; } } // fclose(stdin); return 0;
}
简单的完全背包HDU1114的更多相关文章
- HDU1712简单的分组背包
HDU1712http://acm.hdu.edu.cn/showproblem.php?pid=1712 简单的分组背包 #include <map> #include <set& ...
- Robberies(简单的01背包 HDU2955)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 完全背包hdu1114
https://vjudge.net/contest/68966#problem/F 初始化就行了:dp[0]=0: 这题还要刚好装满背包,输出时进行判断 #include<map> #i ...
- HDU 2602 (简单的01背包) Bone Collector
很标准的01背包问题 //#define LOCAL #include <algorithm> #include <cstdio> #include <cstring&g ...
- 完全背包-hdu1114
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目描述: 代码实现: #include<cstdio> #include<i ...
- dp之多重背包hdu1114
题目很水,不多说......... #include<stdio.h> int main() { long t,n,m,a,i,j,dp[10005],vol[505],jizhi[505 ...
- 简单的背包变形HDU1203,HDU2955
今天一直在写背包,不过中间停了一段时间在写shell. 一直在做01背包.今天做了这两题很相似的背包 首先是HDU1203 Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要 ...
- POJ 3624 Charm Bracelet 简单01背包
题目大意:有n件珠宝,每个珠宝的魅力值为v,重量为w,求在重量不超过m的情况下能达到的最大魅力值. 题目思路:简单的01背包,由于二维数组会超内存所以应该压缩成一维数组. dp[i][j],表示选取i ...
- dp之背包总结篇
//新手DP学习中 = =!! 前言:背包问题在dp中可以说是经典,作为一个acmer,到现在才正式学习dp,可以说是比较失败的.我个人比较认同一点,想要做一个比较成功的acmer,dp.搜索.数学必 ...
随机推荐
- PHP中zlib扩展实现GZIP压缩输出各种方法总结
一般情况下我们出现大量数据传输理希望减少服务器的带宽压力,会采取一种方式来压缩文件传输,php中用zlib也可以实现gzip压缩输出,下面我们来看GZIP压缩输出各种方法总结. GZIP(GNU-ZI ...
- attribute section的用法
1. gcc的__attribute__编译属性 要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或 ...
- (转)JS托管和最新的jQuery引用地址大全(jQuery最新版v1.9.0)
什么是Google的js托管? 说的明白点,跟我们以往做法一样,只不过这时候的引用的js库是放在Google服务器上的.比如引用jquery,则使用路径http://ajax.googleapis.c ...
- 【转】android错误 aapt.exe已停止工作的解决方法
http://www.jb51.net/article/57420.htm 在使用eclipse进行安卓java的编程的时候,有时候我们会遇到这样的问题:那就是无故弹出aapt.exe停止工作的提示, ...
- Nginx平台构架 分类: Nginx 2015-07-13 10:55 205人阅读 评论(0) 收藏
深入理解Nginx模块发开与架构解析读书笔记. nginx在启动后,在unix系统中会以daemon的方式(可以手动关闭 nginx.conf daemon off)在后台运行,后台进程包含一个mas ...
- linux 进程综合指令
1. 查询当前机器运行的进程总数: ps -ef | wc -l ps -ef | grep httpd | wc -l 2. ulimit命令 表 1. ulimit 参数说明 选项 [option ...
- 网络学习笔记----02--IGMP组播、ARP
IGMP组播 :在路由器的接口上运行,周期性扫描本网段是否有绑定某个多播地址的计算机. ARP,全称Address Resolution Protoco,将广播中的IP地址解析成MAC地址 查看MAC ...
- yii2 验证码的使用
@see http://www.yiiframework.com/doc-2.0/yii-captcha-captcha.html 以下根据 MVC 模型的顺序来添加代码 1. model 层, 或 ...
- 利用AWS简单存储服务(S3)托管网站
1.首先建立Storage Bucket存储桶,名为网站域名: 2.在[属性]中选择启用网站托管或重定向到另一主机,即可. 3.官方参考文档:https://docs.aws.amazon.com/z ...
- MDA系统分析实战--图书馆管理系统
MDA系统分析实战--图书馆管理系统 本文通过MDA系统分析方法,对图书馆管理系统进行分析,简要叙述系统分析的一般过程.首先,简要介绍什么是MDA:MDA(Model-Driven Architect ...