HDU2159
2015-05-31 12:32
274 查看
二维完全背包
#include <iostream> #include <string.h> using namespace std; int a[100],b[100],dp[100][100]; int main(){ int n,m,k,s; while(cin>>n>>m>>k>>s){ memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(dp,0,sizeof(dp)); for(int i=0;i<k;i++){ cin>>a[i]>>b[i]; } for(int i=0;i<k;i++){ for(int j=b[i];j<=m;j++){ for(int l=1;l<=s;l++){ dp[j][l]=max(dp[j][l],dp[j-b[i]][l-1]+a[i]); } } } int j=s; int i=0; while(i<=m&&dp[i][j]<n)i++; cout<<(i<=m?m-i:-1)<<endl; } }
相关文章推荐
- 第十三周项目三——立体类族共有的抽象类
- mysqldump的几种用法(Mysql)
- OSSEC
- poj 1041 John's trip(欧拉回路)
- 3389端口使用技巧攻防
- POJ 2976 Dropping tests 01分数规划
- HDU 2015 偶数求和
- 网页,html5,canvas,js 动态绘制柱形图
- LeetCode Implement Trie (Prefix Tree)
- iOS开发UITableView基本使用方法总结1
- org.springframework.web.servlet.view.InternalResourceViewResolver 内存泄露问题
- 第七章 实现炫酷效果—图像和动画(2)
- Android Service完全解析
- Android 收到短信后启动
- jQuery学习总结
- javaweb-servlet开发
- 关于 java JSONArray JSONObject转换问题
- SQL语句
- kali-google-chrome中文乱码问题解决方法
- iOS编程——面向对象的编程