简单的完全背包HDU1114
来源:互联网 发布:windows 平板电脑应用 编辑:程序博客网 时间:2024/05/16 12:08
今天广州下雨啦,不过没关系啦,反正我最近也都在刷题学习算法。
昨天做了五题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 1000003int 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;}
0 0
- 简单的完全背包HDU1114
- hdu1114 恰好装满的完全背包
- HDU1114 完全背包变形
- hdu1114 & poj1384 完全背包
- hdu1114完全背包
- HDU1114完全背包
- hdu1114(完全背包)
- hdu1114完全背包
- hdu1114(完全背包)
- HDU1114(完全背包)
- hdu1114 完全背包
- hdu1114 完全背包
- HDU1114完全背包模板
- hdu1114 Piggy-Bank 完全背包
- Piggy-Bank hdu1114 完全背包
- hdu1114 Piggy-Bank (完全背包)
- HDU1114(完全背包问题)
- HDU1114 Piggy-Bank 完全背包
- 创建顺序表并进行一系列操作
- 文件相关知识
- 网页计算器
- 三星i9308刷机笔记
- axis2发布webservice记录
- 简单的完全背包HDU1114
- 最长公共子序列(poj1458)
- CROC-MBTU 2012, Elimination Round / 245E Mishap in Club (想法题)
- 有关对话框的问题
- sublime text 2 中文乱码解决办法
- Spring与Hibernate整合时, Cannot find class [org.apache.commons.dbcp.BasicDataSource]
- C#委托与代理模式
- 黑马程序员——正则表达式
- JAVA基础知识复习7