dhu4508(完全背包)
2016-03-12 22:15
295 查看
#include<stdio.h> #include<string.h> #define max(x,y) (x>y?x:y) int main() { int n; while(~scanf("%d",&n)) { int i,j,k; int dp[10001]; int a[10001],b[10001]; for(i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); scanf("%d",&k); memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) for(j=b[i];j<=k;j++) dp[j]=max(dp[j],dp[j-b[i]]+a[i]); printf("%d\n",dp[k]); } }
相关文章推荐
- BestCoder Round #75
- C/C++中字符串问题汇总
- Android-使用绝对布局管理器固定组件的位置
- Ubuntu搭建Ruby on Rails环境
- 六款值得推荐的android(安卓)开源框架简介
- sort -k选项详解
- MySQL学习笔记之四:并发控制和事务机制
- 蓝桥杯 大臣的旅费
- HDOJ 5641-King's Phone【模拟】
- Android布局文件.xml中的自定义属性(结合封装的自定义View)
- spring+shiro+cas的整合问题之循环重定向
- weblogic重定向后日志备份
- 我的博客今天开通啦
- [mysql] mysql 5.6.27 innodb 相关参数
- 机制和策略
- jquery实现图片自动轮播
- C++学了这么多年,你也许不知道为什么类定义要放在.h文件,类实现放在cpp文件。它们如何关联?
- BestCoder Round #75 总结
- 马虎的算式
- 51nod1084(双线程dp)