码迷,mamicode.com
首页 > 其他好文 > 详细

动态规划 初级背包问题。。

时间:2019-10-14 23:35:03      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:动态规划   cto   lse   pre   max   weight   span   int   ret   

状态转移方程 B[n][w]=B[n-1][w-W[i]]+V[i] 

表示取走第n个物品,重量为W时的价值量。 W V分别存放重量和价值的数组。

#include<iostream> #include<vector> #include<math.h> // 背包问题 using namespace std; int value[]={3,4,5,8,10}; int weight[]={2,3,4,5,9}; const int N=5; const int W=20; int B[N+1][W+1]; int main() { for(int i=1;i<=N;++i) { for(int k=1;k<=W;++k) { if(weight[i-1]>k) { B[i][k]=B[i-1][k]; } else { B[i][k]=max(B[i-1][k],B[i-1][k-weight[i-1]]+value[i-1]); } } } cout<<B[N][W]; return 0; }

 

动态规划 初级背包问题。。

标签:动态规划   cto   lse   pre   max   weight   span   int   ret   

原文地址:https://www.cnblogs.com/yangshengjing/p/11674756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!