01背包问题 动态规划
2015-11-06 22:36
232 查看
Given N, M.
先确定objective 是value
先top-bottom, 考虑 i 与 i-1的关系
f[i][m]=max{f[i−1][m],f[i−1][m−wi]+vi}f[i][m] = \max\{f[i-1][m], f[i-1][m-w_i] + v_i\}
再bottom-top来构建这个matrix,
先求 f[1][0:M]
再求 f[2][0:M]
再由于在递推公式中,m>wim > w_i, 所以其实只要求
先求 f[1][w_1:M]
再求 f[2][w_2:M]
就行
code
先确定objective 是value
先top-bottom, 考虑 i 与 i-1的关系
f[i][m]=max{f[i−1][m],f[i−1][m−wi]+vi}f[i][m] = \max\{f[i-1][m], f[i-1][m-w_i] + v_i\}
再bottom-top来构建这个matrix,
先求 f[1][0:M]
再求 f[2][0:M]
再由于在递推公式中,m>wim > w_i, 所以其实只要求
先求 f[1][w_1:M]
再求 f[2][w_2:M]
就行
code
for(int i = 1; i< N; i++) for(int j = w[i]; j < M; j++) { f[i][j] = max{f[i-1][j], f[i-1][j-w[i]] + v[i]} }
相关文章推荐
- 等差数列
- Easy Guide – Fast Start for sipXecs Admins
- 杭电acm2523
- cocos2d-x设计模式发掘之四:外观模式
- cocos2d-x设计模式发掘之五:防御式编程模式
- 什么叫反射工厂
- cocos-lua基础学习(10)scheduler类学习笔记
- IDEA小技巧:添加代码快捷方式
- cocos-lua基础学习(八)Layer类学习笔记
- cocos-lua基础学习(七)Scene类学习笔记
- ios基础训练(一)
- java中的抽象类
- 学习心得(二)
- nyoj 1129 Salvation(判断方向+判断走向)
- 源码安装安装lamp
- Angular.JS + Require.JS + angular-async-loader 来实现异步加载 angular 模块
- LightOJ - 1166 Old Sorting(贪心)
- Product of Array Except Self
- U盘无法安装win10提示Your PC/Device needs to be repaired
- 正则表达式