美文网首页
C++回溯法解决背包问题源码演示

C++回溯法解决背包问题源码演示

作者: jiangmm | 来源:发表于2021-10-09 00:08 被阅读0次

工作之余,把代码过程常用的内容做个备份,下面代码段是关于C++回溯法解决背包问题演示的代码,应该对各位有较大好处。

#include<iostream>

#include<algorithm>

using namespace std;

class Knapsack{

public:

  p = pp;

  w = ww;

  n = nn;

  c = cc;

  cw = 0;

  cp = 0;

  bestp = 0;

  x = new int[n];

  cx = new int[n];

}

void knapsack(){

  backtrack(0);

}

if(i > n){

    if(cp > bestp){

      bestp = cp;

      for(int i = 0; i < n; i++)

x[i] = cx[i];

    }

    return;

}

  cw += w[i];

  cp += p[i];

  cx[i] = 1;

  backtrack(i+1);

  cw -= w[i];

  cp -= p[i];

}

cx[i] = 0;

}

void printResult(){

  cout << "可以装入的最大价值为:" << bestp << endl;

  cout << "装入的物品依次为:";

  for(int i = 0; i < n; i++){

    if(x[i] == 1)

cout << i+1 << " ";

  }

  cout << endl;

}

private:

  int n;

  double c;

};

int main(){

  double p[4] = {9,10,7,4},w[4] = {3,5,2,1};

    Knapsack ks = Knapsack(p,w,4,7);

    ks.knapsack();

  ks.printResult();

  return 0;

}

                               

                       

               

               

           

           

               

相关文章

  • C++回溯法解决背包问题源码演示

    工作之余,把代码过程常用的内容做个备份,下面代码段是关于C++回溯法解决背包问题演示的代码,应该对各位有较大好处。...

  • 回溯法解决背包问题

    问题描述: 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了...

  • Java 回溯法算法演示源码

    下面内容是关于 Java 回溯法算法演示的内容。 package com.lh.DataConsutror; pu...

  • 回溯算法解决背包问题

    1.描述:石头收藏家小明在徒步登山的时候发现了一堆美丽的石头。这些石头价值不菲,但是都很重,小明自身的力气有限,一...

  • 回溯法——矩阵中的路径

    回溯法回溯法可以看成蛮力法的升级版,它从解决问题每一步的所有可能选项里系统地选择出一个可行的解决方案。回溯法非常适...

  • 算法的设计思想2

    4,回溯法 回溯法是一种优化的穷举法。所谓穷举法就是穷举问题的所有可能性,直到发现解决问题的最佳解为止。回溯法会有...

  • 背包问题,使用回溯法

  • 分支限界法

    分支界限法原理   分支限界法和回溯法是类似的问题求解方法。回溯法是通过深度优先的方式对问题进行探索性的解决,而分...

  • 回溯法求0/1背包问题

    回溯法求0/1背包问题 给定n件物品和一个容量为c的背包,物品的重量为Wi,其价值为Vi,0/1背包问题是如何选择...

  • N皇后

    回溯法核心代码: n皇后问题回溯法

网友评论

      本文标题:C++回溯法解决背包问题源码演示

      本文链接:https://www.haomeiwen.com/subject/ofbfoltx.html