完全背包问题总结

1.什么是完全背包问题

完全背包问题是0-1背包问题的扩展,其区别在于:

0-1背包的物品每个只有一件,不能重复使用。

完全背包问题中:每个物品有无数件,可以重复操作。

2.解决完全背包问题的一般步骤

完全背包也是动态规划的一种典型例题,所以解决完全背包问题任然是动规五部曲。

其次,按照动态规划的一般步骤

  1. 明确dp数组及下标的含义。
  2. 确定递推公式,但是递推公式只是动态规划的一部分,而非全部
  3. dp数组初始化
  4. 确定遍历顺序:从前往后?从后往前?
  5. 打印dp数组, 用于debug验证等。

3.完全背包问题的遍历顺序

完全背包的遍历顺序如何确定:

  • 对于二维dp数组来说,先背包再物体;先物体再背包;仅仅是二维数组填充的顺序不同而已,一个按列填充,一个按行填充。但是初始化时,就不同了,可以使用一个物品重复填充不同空间的背包。
  • 对于一维滚动dp数组来说,因为是滚动的行数据,所以是按行顺序填充,所以是先物品再背包。

其次注意:传统的一维dp\[\]数组遍历时,背包总是倒序,放置物品重复放置。

但是在完全背包问题中,不存在不能重复放置的问题,所以,这里将背包遍历改为正序遍历过程即可。

具体的步骤,可以在题目里看到。

相关推荐
To_OC6 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495647 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
爱刷碗的苏泓舒11 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
烬羽13 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米13 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记14 小时前
堆(数据结构)
数据结构·
REST_302714 小时前
告别Excel孤岛:一款任务链路可视化工具带来的真实改变
大数据·微服务·云计算·编辑器·excel·动态规划
星空露珠14 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
QXWZ_IA16 小时前
桥梁数字孪生怎么落地?
人工智能·科技·算法·智能硬件·政务