背包问题:c++回溯法求解背包问题

发布时间:2024-11-22 17:56

背包客学会独立解决问题 #生活乐趣# #日常生活乐趣# #旅行探索乐趣# #背包客的乐趣#

最新推荐文章于 2024-10-11 16:09:21 发布

ZHUO_SIR 于 2018-11-03 22:03:53 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

1.问题的重述:

      给定n种物品和一个背包。物品i的重量是wi,其价值为pi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大?

2.问题的分析

      根据题目所给的信息可知就是在wi<c时可以放入物品,并且结合要求价值最大这一点来进行挑选,例如:

共有5种物品,即n=5;背包容量c=30;各物品的重量 wi[5]={15,5,6,12,9};各物品的价值为: p[i]={25,16,14,13,36};

所以所求背包中的物品的价值最大就是 while(wi<=c) p=max.当wi>c,退出,并且输出最大的价值p.

3.思路

     由于所给的信息较多,所以考虑用类来进行封装,这样看起来比较有清晰而且有条理。

源代码如下:
 

#include "stdafx.h"

#include<iostream>

using namespace std;

class Bag

{

private :

int c;

int n;

int *w;

int *p;

int *x;

int cw;

int cv;

int bestv;

int *bestx;

public:

Bag();

~Bag();

void Output();

void Set(int n);

void Input();

void Ba

网址:背包问题:c++回溯法求解背包问题 https://www.yuejiaxmz.com/news/view/195586

相关内容

旅行商问题+背包问题
动态规划特训:旅行商问题(回溯法或记忆搜索法)
求职面试问题大全 65个常见的面试问题巧回答
50个常见的C#面试问题和答案合集和详解
用c语言实现旅行商问题的c
节约里程法求解CVRP问题
面试常见问题及回答
背包的背负系统优秀=舒服?这才是调整背包的正确姿势!
面试问题及回答技巧
【荐读】面试常见问题及回答,面试问题回答技巧

随便看看