poj 3628 Bookshelf 2
2016-02-21 00:34
281 查看
没有上限,就自己造上限,比如说一个很大的数字或者sum,还是sum好。。
[code]#include<stdio.h> #include<string.h> int min(int g,int h) { return g>h?h:g; } int max(int g,int h) { return g<h?h:g; } int h[25]; int dp[2001000];//这里20*1000000的话会爆炸的。。但是,也想不出合适的数字。。总觉得要优化。。但是没思路。。 int main() { int n,b; int sum=0; scanf("%d%d",&n,&b); for(int i=1;i<=n;i++) { scanf("%d",&h[i]); sum=sum+h[i]; } memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { for(int j=sum;j>=h[i];j--) { dp[j]=max(dp[j],dp[j-h[i]]+h[i]); } } int ans=0x3f3f3f3f; for(int i=b;i<=sum;i++) { if(dp[i]-b>=0) ans=min(ans,dp[i]-b); } printf("%d\n",ans); return 0; }
相关文章推荐
- 搜索JAR包,找类库
- BIOS设置图解教程 Award Bios类型设置详解
- IdentityServer3——入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 术语
- Tomcat中JSP引擎工作原理
- HDOJ 5631 Rikka with Graph(并查集)
- ViewGroup全面分析
- svn服务基础学习与搭建,使用
- java中的堆Heap和栈Stack的区别
- 小家具安装感受
- We Recommend a Singular Value Decomposition
- 【hdu1159】common subsequence —— 二维dp
- C#获取窗口句柄概念和方法实例
- objective c, protocol
- 子线程开启RunLoop
- 电脑主板中bios的几个常见类型介绍
- 什么是作用域链,什么是原型链,它们的区别,在js中它们具体指什么?
- 网页布局知识——目录篇
- 实现内核驱动程序模块
- 使用eclipse向yarn提交job
- codeforces 623A. Graph and String 构造