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

【蓝桥杯】算法笔记2

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

动态规划的核心思想:

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

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

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

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

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


🎒0-1背包问题

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

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

零食重量好吃度
薯片2kg4
可乐3kg5
糖果1kg3
饼干2kg3

规则

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

  2. 每种零食只能拿一件

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

🧩 分步思考图解

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

容量0kg1kg2kg3kg4kg5kg
价值000000

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

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

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

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

第3步:加入糖果(1kg,好吃度3)

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

http://www.mrgr.cn/news/97043.html

相关文章:

  • Javaweb后端AOP记录操作日志
  • 蓝桥杯冲刺
  • Springboot学习笔记4.1
  • Apache httpclient okhttp(1)
  • 哈希表+前缀和+滑动窗口高效查找——蓝桥杯例题
  • 3499 幸运数字
  • Unity2D:从零开始制作一款跑酷游戏!
  • 【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法、数据库连接池和 MySQL 开发企业规范
  • 图解AUTOSAR_LINInterface
  • 认识 Promise
  • 算法题(114):矩阵距离
  • 【动态规划】线性dp——LIS和LCS
  • LeeCode 5. 最长回文子串
  • 计算机视觉算法实战——基于YOLOv8的行人流量统计系统
  • ARM------硬件程序开发
  • vue3+ts+element-plus 开发一个页面模块的详细过程
  • 栈容器的应用
  • SpringBoot项目Sa-token框架整合JWT
  • 【Linux网络与网络编程】03.UDP Socket编程
  • 虚拟电商-话费充值业务(六)话费充值业务回调补偿