回溯法解决0/1背包问题(C语言实现)

目录

回溯法基本步骤

问题描述

基本思路

具体实现代码

运行结果


回溯法基本步骤

(1)对所给的问题,定义问题的解空间。

(2)确定状态空间树的结构

(3)  用深度优先(DFS)的方法搜索解空间,用约束方程和目标函数的界对状态空间树进行修剪,生成搜索树,得到问题的解。

参考:《算法分析与设计(第三版)》(清华大学出版社,郑宗汉、郑晓明编著)

问题描述

0/1背包问题用通俗易懂的话来描述就是:给定一个背包可承受的最大重量、各个物品的重量和价值,求在不超重的情况背包内所装物品的最大总价值和达到该最大值物品的选择情况。

基本思路

根据问题要求,显然约束方程如下:

 (博客水平有限,只能插入图片望谅解)

 其中,X为货物的选择情况(0为不选,1为选),W为货物的重量,M为背包最大容量,n为货

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值