动态规划之01背包.pptVIP

  • 2
  • 0
  • 约6.18千字
  • 约 31页
  • 2019-09-14 发布于湖北
  • 举报
* 3、以自底向上的方式计算出最优值 void KnapSack(int v[],int w[],int c,int n,int m[][11]) { int jMax=min(w[n]-1,c); for (j=0;j=jMax;j++) m[n][j]=0; for (j=w[n];j=c;j++) m[n][j]=v[n]; for (i=n-1;i1;i--) { int jMax=min(w[i]-1,c); for (j=0;j=jMax;j++) m[i][j]=m[i+1][j]; for (j=w[i];j=c;j++) m[i][j]=max(m[i+1][j],m[i+1][j-w[i]]+v[i]); } m[1][c]=m[2][c]; if(c=w[1]) m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]); } * * 学习要点: 理解动态规划算法的概念。 掌握动态规划算法的基本要素 (1)最优子结构性质 (2)重叠子问题性质 掌握设计动态规划算法的步骤。 (1)找出最优解的性质,并刻划其结构特征。 (2)递归地定义最优值。 (3)以自底

文档评论(0)

1亿VIP精品文档

相关文档