hdu1114Piggy-Bank【完全背包基础题】
2015-10-26 21:41
267 查看
其实也算不上是裸的完全背包 因为需要保证恰好到那个重量 很幸运的是我一下子就想到了dp[]数组的初始化方法
但是悲催的是自己数组开小了
/********
hdu1114
2015.10.26
78MS 1612K 762 B
********/
#include <iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int p[505],w[505],dp[10005],e,f,t,n;
int main()
{
//freopen("cin.txt","r",stdin);
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&e,&f);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&p[i],&w[i]);
memset(dp,0x3f3f3f3f,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;i++)
for(int j=w[i];j<=f-e;j++)
dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
if(dp[f-e]<0x3f3f3f3f)
printf("The minimum amount of money in the piggy-bank is %d.\n",dp[f-e]);
else printf("This is impossible.\n");
}
return 0;
}
但是悲催的是自己数组开小了
/********
hdu1114
2015.10.26
78MS 1612K 762 B
********/
#include <iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int p[505],w[505],dp[10005],e,f,t,n;
int main()
{
//freopen("cin.txt","r",stdin);
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&e,&f);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&p[i],&w[i]);
memset(dp,0x3f3f3f3f,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;i++)
for(int j=w[i];j<=f-e;j++)
dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
if(dp[f-e]<0x3f3f3f3f)
printf("The minimum amount of money in the piggy-bank is %d.\n",dp[f-e]);
else printf("This is impossible.\n");
}
return 0;
}
相关文章推荐
- ALM测试
- 高级学员:2015年10月26日作业
- ALM测试
- Volley及FastJson的简单使用
- 我5年总结出的14条编程经验
- SQL基础(三)之约束
- svn: E155019: Can't upgrade as it is not a pre-1.7 work解决办法
- 【[R] 【教程】教你如何读懂线性回归lm的结果summary(判断显著性)[转]】
- Qt中 QGLWidget碰到no such file or directory的解决办法
- C语言-函数指针和指针函数
- 图的基本操作
- Spring MVC 中的 @ResponseBody 注解的使用场合
- Hive原理与不足
- hdu 4614 Vases and Flowers(线段树)
- 【开篇】心态、责任比技术能力更重要
- VideoView的全屏问题
- 常用的SQL语句(牢记)
- 《一切都是最好的安排》——加措
- python的文件和流
- 【NGUI】Unity使用Resources加载NGUI的图片