背包九讲
Wilson_Liu257
以博客平台交流学习,强化自身和行业领域能力
展开
-
完全背包
问题描述完全背包,有件物品和一个容量为的背包。放入第件物品耗费的费用是,得到的价值是,每个物品可以取无限次。求解将哪些物品装入背包可使价值总和最大。例题疯狂采药基本思路问题类似与01背包问题,所不同的是条件由取一件变成了无限件。对于每一件物品来说策略有取或不取,变成了取0件、取1件……取件等多种策略。按照01背包的思路则动态转移方程应为 ...原创 2019-09-28 10:53:58 · 101 阅读 · 0 评论 -
多重背包
问题描述有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值 是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。解题思路针对多重背包中第个物品有个物品可以选择,那么选择策略有种,即,那只需要按照完全背包的思路将其动态转移方程改为 当...原创 2019-09-28 11:40:28 · 107 阅读 · 0 评论 -
混合三种背包
问题描述在现实问题中根据问题的不同有的物品只能取一次,有的物品可以取无限次,有的物品可以取有限次。求解思路即将每个物品按照其问题定义的属性选择按照01背包、完全背包或多重背包问题的思路进行求解,即在求解过程中对物品求解方式进行分类处理。状态转移方程只需要综合三种状态转移方程选择从顺序还是逆序循环即可 压缩内存 ...原创 2019-09-28 12:14:42 · 141 阅读 · 0 评论 -
二维费用问题
问题描述二维费用指的是每个物品的费用包含两钟不同的费用,选择这件物品必须同时付出这两种代价。对于每一种代价都有一个最大值,问怎样选择才能有最大价值。解题思路按照一维背包的求解思路也可以分为01背包、完全背包、多重背包,不过在计算费用时需要多加一重循环去计算费用...原创 2019-09-28 13:52:53 · 1176 阅读 · 0 评论 -
分组背包
问题描述有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法描述这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有状态转移方程:...原创 2019-09-29 13:37:16 · 223 阅读 · 0 评论 -
依赖背包
问题描述这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖。算法描述在选择记录物品时时将不存在依赖关系的物品和存在依赖关系的物品分开存储,且对于依赖关系建立映射。在遍历每个不存在依赖关系的物品时,针对每个物品在遍历的时候需要对与那些依赖的物品同时进行选择遍历,将其进行组...原创 2019-09-29 14:57:31 · 225 阅读 · 0 评论