作业帮 > 综合 > 作业

动态规划的0-1背包问题,请高手解释下代码

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 17:02:30
动态规划的0-1背包问题,请高手解释下代码
算法如下:
void Knapsack(Type v,int w,int c,int n,Type * * m){
int jMax=min(w[n]-1,c);
for(int j=0;j
这是清华算法设计C++描述上的代码吧?我正巧读过.
简单解释一下吧 在解释之前你要知道动态规划是一个自底向上的过程
这个算法用到了一个二维数组m[][] 来存储各个坐标的价值信息 所以横坐标表示背包号码 纵坐标表示背包容量从1到c
注意该算法只能限制c是整数且每个背包的重量也是整数.
然后int jMax=min(w[n]-1,c);找出w[n]-1和 c之间的小者.
for(int j=0;j