完全背包问题(基本思路优化) O(n^2)
2014-03-29 21:41
260 查看
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int f[26][30001]; int c[26]; int w[26]; int v[26]; int p[26]; int main() { int n,V,i,j,k; for(;;) { cin>>V>>n; memset(f,0,sizeof(f)); for(i=1;i<=n;i++) { cin>>v[i]>>p[i]; } int t=2; c[1]=v[1];w[1]=p[1]; for(i=1;i<n;i++) { if(v[i+1]>v[i]&&p[i+1]>p[i]) break; c[t]=v[i+1]; w[t]=p[i+1]; t++; } for(i=1;i<=n;i++) { for(j=1;j<=V;j++) { for(k=0;k<=(j/c[i]);k++) { if(j>=(k*c[i])) f[i][j]=max(f[i][j],f[i-1][j-k*c[i]]+k*w[i]*c[i]); } } } cout<<f [V]<<endl; } return 0; }
相关文章推荐
- java 学习 第一章
- VI 基本可视模式
- 哈佛结构与冯·诺伊曼结构--计算机体系结构
- SQL语句引发的思考
- 文件操作fstream
- CEO、COO、CFO、CTO、CIO是什么意思
- 结构体指针作为函数参数
- vi中批量注释行
- 时间与推荐 python验证
- Oracle数据库下载及安装图文操作步骤
- Block、委托、回调函数原理剖析(在Object C语境)——这样讲还不懂,根本不可能!
- -高级Javascript编程学习笔记----Javascript编程及架构设计最应该注意的基本点
- ZOJ3721 Final Exam Arrangement(贪心(区间选点))
- 在Windows和Linux下使用LaTeX
- HDU1296How many integers can you find 容斥原理+DFS ZOJ2836 Number Puzzle
- webapp开发基础
- 寻找发帖“水王”
- 如何在Linux使用Eclipse + CDT开发C/C++程序(转)
- Linux下route命令用法
- C#-控制台-多彩控制台,sleep函数,背景函数....---ShinePans