背包问题c++动态规划方式

匿名 (未验证) 提交于 2019-12-03 00:16:01
#include <iostream> using namespace std;  int weight[5] = {5,2,4,8,6}; int len[5] = {2,4,3,1,7}; int num = 5; int space = 15;  int main() {         int max_weight[15] = {0};         for(uint32_t i=0; i<num;i++) {                 for(uint32_t j=space; j>len[i]; j--) {                         if (max_weight[j-len[i]] + weight[i] > max_weight[j]) {                                 max_weight[j] = max_weight[j-len[i]] + weight[i];                         }                 }                 for(uint32_t j=0; j<space; j++) {                         cout<<max_weight[j]<<" ";                 }                 cout<<endl;          }         cout<<max_weight[14]<<endl;         return 0; } 

  结果

0 0 0 5 5 5 5 5 5 5 5 5 5 5 5 0 0 0 5 5 5 5 7 7 7 7 7 7 7 7 0 0 0 5 5 5 9 9 9 9 11 11 11 11 11 0 0 8 8 13 13 13 17 17 17 17 19 19 19 19 0 0 8 8 13 13 13 17 17 17 17 19 19 19 23 23 

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!