0-1背包问题(Java)
来源:互联网 发布:淘宝首页轮播图 编辑:程序博客网 时间:2024/06/02 04:39
文章参考博文:http://blog.csdn.net/mu399/article/details/7722810。从该文章中熟悉了算法的动态规划思想,简单地用Java实现了算法的思想。
参数:v表示物品的价值,s表示物品的质量,C表示背包的容量。令M[i,j]表示将物品1-i装入容量为j的背包可获得的最大价值(并不是把1-i都放进去),递归式如下:
M(i , j) = Max{ M( i-1, j ) , M( i-1, j-si ) + vi }
Java的实现记录如下:
void ZeroOnePackage(int []v, int[] s, int C){int[][] M = new int[v.length][C+1];int max = 0;for (int i=0; i<v.length; i++){if(s[i]<=C)for(int j=s[i];j<=C;j++)M[i][j] = v[i];}for (int i=0; i<v.length; i++){for(int j=0; j<=C; j++){if(i>0 && j-s[i]>=0)M[i][j] = Math.max(M[i-1][j],M[i-1][j-s[i]]+v[i] );if(M[i][j]>max)max = M[i][j];}}System.out.println("Max ="+ max);}
0 0
- 0-1背包问题(java版)
- 0-1背包问题(Java)
- java 0-1背包问题
- 背包问题(二):0-1背包
- (背包一)0-1背包问题
- 背包问题(0/1背包,完全背包)
- Java实现0-1背包问题
- 0-1背包问题、背包问题(贪心算法)
- 贪心法--背包问题(不是0/1背包问题)
- 【转】背包问题总结(0-1背包+完全背包+多重背包)
- 背包问题总结(0-1背包+完全背包+多重背包)
- 【转】背包问题总结(0-1背包+完全背包+多重背包)
- 背包问题 (0-1背包,多重背包,完全背包)
- 模板①:背包问题(0-1背包&完全背包&多重背包)
- 动态规划--背包问题(0-1背包,完全背包,多重背包)
- 背包问题(0-1背包、完全背包、多重背包)详解
- 背包问题和0-1背包问题
- 背包问题和0-1背包问题
- PHP正则常用函数
- CAS修改登录界面
- HDU2000 ASCII码排序
- Android 高德地图隐藏左下角Logo
- 对R-CNN的简单理解
- 0-1背包问题(Java)
- 关于OD破解汇编基础知识(二)--寻址方式
- Android EditText光标移动到文本框末尾
- java抽象类
- 我是这样在windows上配置winpython的
- redis的应用场景
- 虚拟机上无法运行Gazebo的问题?
- 《算法导论》第8章 线性时间排序 个人笔记
- 【Zanuck 镇】GlusterFS集群一键启动脚本(Centos:shell)