背包问题之动态规划法.pptVIP

  • 1
  • 0
  • 约1.47万字
  • 约 54页
  • 2019-05-16 发布于广东
  • 举报
设n个物品的重量存储在数组w[n]中,价值存储在数组v[n]中,背包容量为C,数组V[n+1][C+1]存放迭代结果,其中V[i][j]表示前i个物品装入容量为j的背包中获得的最大价值,数组x[n]存储装入背包的物品,动态规划法求解0/1背包问题的算法如下: * 算法1——0/1背包问题 int KnapSack(int n, int w[ ], int v[ ]) { for (i=0; i=n; i++) //初始化第0列 V[i][0]=0; for (j=0; j=C; j++) //初始化第0行 V[0][j]=0; for (i=1; i=n; i++) //计算第i行,进行第i次迭代 for (j=1; j=C; j++) if (jw[i]) V[i][j]=V[i-1][j]; else V[i][j]=max(V[i-1][j], V[i-1][j-w[i]]+v[i]); j=C; //求装入背包的物品 for (i=n; i0; i--) { if (V[i][j]V[i-1][j]

文档评论(0)

1亿VIP精品文档

相关文档