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

【蓝桥杯】动态规划:背包问题

这篇文章主要记录动态规划方面的学习。

动态规划的核心思想:

把大问题分解成小问题,记住小问题的解,避免重复计算。

动态规划(DP)的三大特点

①最优子结构:大问题的最优解可以由小问题的最优解推导出来

②重叠子问题:在求解过程中会反复遇到相同的小问题

③无后效性:当前状态一旦确定,后续过程不受之前决策的影响


🎒0-1背包问题

🛒 生活化题目:吃货的购物计划

题目:妈妈给你一个限重5kg的购物袋,超市有以下零食:

零食 重量 好吃度
薯片 2kg 4
可乐 3kg 5
糖果 1kg 3
饼干 2kg 3

规则

  1. 购物袋不能超重(≤5kg)

  2. 每种零食只能拿一件

  3. 目标是让总"好吃度"最高

🧩 分步思考图解

第0步:初始化表格(空包状态)

容量 0kg 1kg 2kg 3kg 4kg 5kg
价值 0 0 0 0 0 0

第1步:考虑薯片(2kg,好吃度4)

if 当前容量 >= 2kg:
    价值 = max(不装的价值, 装的价值 = 剩余容量的价值 + 4)
容量 0kg 1kg 2kg 3kg 4kg 5kg
价值 0 0 4 4 4 4

第2步:加入可乐(3kg,好吃度5)

# 容量3kg时:
max(不装=4, 装=0kg价值0 + 5 =5) → 选5
# 容量5kg时:
max(不装=4, 装=2kg价值4 +5=9) → 选9
容量 0kg 1kg 2kg 3kg 4kg

相关文章:

  • 23种设计模式-行为型模式-模板方法
  • AtCoder 第400场初级竞赛 A~E题解
  • Redis客户端命令到服务器底层对象机制的完整流程?什么是Redis对象机制?为什么要有Redis对象机制?
  • 子串分值和(蓝桥杯)
  • 【MySQL 数据库】数据类型
  • Everything 安装教程与使用教程(附安装包)
  • java+postgresql+swagger-多表关联insert操作(七)
  • 流体力学笔记
  • 体验为王:云化园区网络如何重塑用户业务零卡顿时代
  • QT控件 修改QtTreePropertyBrowser自定义属性编辑器源码,添加第一列标题勾选,按钮,右键菜单事件等功能
  • 网络缓冲区
  • OpenCV--图像平滑处理
  • 使用protobuf编译提示无法打开包括文件: ‘absl/log/absl_log.h’: No such file or directory
  • 第十四届蓝桥杯省赛B组c++——填空题201串的熵
  • AI比人脑更强,因为被植入思维模型【47】可复制化思维模型
  • LemonSqueezy: 1靶场渗透
  • OpenCV 图形API(21)逐像素操作
  • Kafka的索引设计有什么亮点
  • 利用pytorch对加噪堆叠自编码器在MNIST数据集进行训练和验证
  • linux-添加开机自启动指定脚本
  • AI赋能科学红毯,机器人与科学家在虚实之间叩问“科学精神”
  • 上海交大曾小勤:科技传播不应停留于知识搬运,要做科学思维的播种机
  • 体坛联播|热刺追平单赛季输球纪录,世俱杯或创收20亿美元
  • 上海国际珠宝时尚功能区未来三年如何建设?六大行动将开展
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行
  • 获派驻6年后,中国驻厄瓜多尔大使陈国友即将离任