当前位置: 首页 > news >正文

0-1背包问题(回溯法)

01 背包问题是什么?

问题描述:

n个物品

每个物品:

重量w[i]

价值v[i]

背包容量为W

每个物品只能选 0 次或 1 次(这就是 “01” 的由来)

目标:
在不超过背包容量的前提下,使总价值最大

举个直观例子

物品重量价值
1115
2320
3430

背包容量W = 4

选 1 + 2 → 重量 4,价值 35

只选 3 → 价值 30

最优答案:35

01 背包的回溯法在干什么?

一句话版:

回溯法 = 枚举所有“选 / 不选”的可能,通过搜索树找最优解

本质是:

深度优先搜索(DFS)

穷举解空间

用剪枝减少搜索量

注意:
回溯法不是最终高效解法,而是:

理解问题本质

讲解 DP 推导的“母体”

回溯视角下的 01 背包

每个物品只有两个选择

对第i个物品:

要么选
要么不选
所以整个问题就是一棵二叉决策树

决策树长什么样?

假设有 3 个物品:

物品1
/ \
不选 选
物品2 物品2
/ \ / \
不选 选 不选 选
物品3 物品3 物品3 物品3

树深度 = 物品个数n

每一条从根到叶子的路径 = 一种方案

叶子节点 = 一种完整选择

回溯 = 在这棵树上走、试、退

代码:

class Knapsack { private: int n; // 物品个数 double c; // 背包容量 vector<double> W; // 重量 vector<double> V; // 价值 double cw; // 当前重量 double cv; // 当前价值 double bestv; // 最优价值 void backtrace(int i) { // 所有物品都考虑完了 if (i == n) { if (cv > bestv) bestv = cv; return; } // 1️⃣ 不选第 i 个物品 backtrace(i + 1); // 2️⃣ 选第 i 个物品(前提是不超重) if (cw + W[i] <= c) { cw += W[i]; cv += V[i]; backtrace(i + 1); // 回溯 cw -= W[i]; cv -= V[i]; } } public: double getMaxVal(const vector<double>& w, const vector<double>& v, double cc) { W = w; V = v; n = W.size(); if (n == 0 || n != V.size()) return 0; c = cc; cw = 0; cv = 0; bestv = 0; backtrace(0); return bestv; } };
http://www.jsqmd.com/news/360086/

相关文章:

  • 2026年重庆白癜风医院厂家推荐:重庆白癜风医院推荐哪家、重庆白癜风医院收费标准、重庆白癜风医院电话选择指南 - 优质品牌商家
  • 2026年防静电地板厂家推荐:陶瓷防静电地板厂家、全钢防静电地板厂家、全铝防静电地板厂家、复合防静电地板厂家选择指南 - 优质品牌商家
  • 2026年复合防静电地板厂家最新推荐:复合防静电地板厂家、成都防静电地板厂家、防静电全钢地板厂家选择指南 - 优质品牌商家
  • 2026年防静电地板厂家公司权威推荐:防静电硫酸钙地板厂家/防静电陶瓷地板厂家/陶瓷防静电地板厂家/选择指南 - 优质品牌商家
  • 传统理赔周期冗长,富卫保险智能核保能否终结等待焦虑?
  • 新视野混合净值波动有几何?贝莱德基金回撤控制策略是否命中关键?
  • AI智能体:从感知到决策,如何自主完成多步骤任务
  • 2026年防静电通风地板厂家厂家最新推荐:全钢防静电地板厂家、全铝防静电地板厂家、复合防静电地板厂家选择指南 - 优质品牌商家
  • 数字化浪潮下,人工智能系统构建的全流程解析
  • 2026年评价高的陶瓷防静电地板公司推荐:陶瓷防静电地板厂家、全钢防静电地板厂家、全铝防静电地板厂家选择指南 - 优质品牌商家
  • 基于Spring Boot的校园家教信息平台
  • 安卓证书在线生成_免费一键制作apk打包 一键制作工具
  • 2026年成都防静电地板厂家推荐:防静电硫酸钙地板厂家、防静电通风地板厂家、防静电陶瓷地板厂家选择指南 - 优质品牌商家
  • 数据服务调用性能优化:从原理到实践
  • 基于Spring Boot的校园闲置物品交易系统
  • 2026年上海财务审计厂家最新推荐:上海外资公司注册/上海工商注册财务/上海注册文化创意公司/选择指南 - 优质品牌商家
  • 基于Spring Boot的乡镇卫生所医用物资进销存系统设计与实现
  • 如何成为AI提示系统的提示工程架构师:掌握用户反馈机制是关键
  • 2026年防静电硫酸钙地板公司权威推荐:全铝防静电地板厂家/复合防静电地板厂家/成都防静电地板厂家/选择指南 - 优质品牌商家
  • AI应用架构师实战:某企业数字空间设计后,业务效率提升40%的秘诀
  • 用ETL为大数据赋能:打造高效数据体系
  • AI原生应用对话管理:打造智能交互新生态
  • 第九章-DAG上的动态规划
  • 数论全集?
  • 2026年评价高的上海注册公司公司推荐:上海注册电子商务公司/上海注册科技公司/上海注册金融科技公司/选择指南 - 优质品牌商家
  • 2026年上海注册信息技术公司厂家最新推荐:上海财务退税、上海外资公司注册、上海工商注册财务选择指南 - 优质品牌商家
  • 为 Zensical 添加多语言翻译
  • 2026年上海财务退税厂家权威推荐榜:上海注册科技公司、上海注册金融科技公司、上海财务代理公司选择指南 - 优质品牌商家
  • 2026年上海财务咨询厂家推荐:上海财务退税、上海工商注册财务、上海注册人工智能公司、上海注册信息技术公司选择指南 - 优质品牌商家
  • 2026年上海财务外包厂家权威推荐榜:上海注册文化创意公司/上海注册生物医药公司/上海注册科技公司/选择指南 - 优质品牌商家