下载此文档

实验2用动态规划实现01背包问题.docx


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
实验二用动态规划实现0-。。  :.给定n种物品和一个背包。物品i的重量是w,其价值为v,背包容量为c。问应该如何选择装入背包的物品,使得装入背包中物品的总价值最大?要求:使用动态规划算法编程,求解0-(1)#include<iostream>usingnamespacestd;intoptp[100][100];voidKnapsack(intm,intn,intw[10],intp[10])//n位物品数,m为背包的承受重量{ for(inti=0;i<=m;i++) { optp[0][i]=0; } for(intk=1;k<=n;k++) { optp[k][0]=0; for(intj=1;j<=m;j++) { if(w[k]<=j) { if(p[k]+optp[k-1][j-w[k]]>optp[k-1][j]) optp[k][j]=p[k]+optp[k-1][j-w[k]]; elseoptp[k][j]=optp[k-1][j]; } else optp[k][j]=optp[k-1][j]; } }}voidTraceback(intm,intn,intw[10],intx[10]){ intsum=0; for(intk=n;k>=1;k--) { if(optp[k][m]==optp[k-1][m]) x[k]=0; else { x[k]=1; m=m-w[k]; sum=sum+w[k]; } } x[1]=optp[1][m]?1:0; cout<<"最大总重量:"<<sum<<endl;}voidmain(){ intn,m; intw[10],p[10],x[10];c

实验2用动态规划实现01背包问题 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小25 KB
  • 时间2019-11-01
最近更新