
背包九讲
有节操的正明君
github:https://github.com/zhengmingzhang
个人网站:https://zhengmingzhang.github.io/
展开
-
背包九讲二、完全背包问题
前面讲了0、1背包的做法,相信很多人和我一样已经摸到了动态规划的大门稍微理解了动态规划的思想,现在我们要向前进,开始分析完全背包问题,这其中会用很多重要且有趣的思想。 题目描述:有N 件物品和一个容量为V 的背包,每件物品有无限个。放入第i 件物品耗费的空间是Ci,得到的价值是Wi。求解将哪些物品装入背包可使价值总和最大。 可以看出,完全背包与0、1背包的唯一区别在于,完全背包的每件物品都有无...原创 2019-04-16 11:30:27 · 443 阅读 · 0 评论 -
背包九讲三、 多重背包问题
前面讲了什么是完全背包问题,完全背包问题就是每个物品你可以使用无数次,而今天所要说的多重背包问题,每个物品都对应有限的数量。这个问题与完全背包问题很相似,只需要在完全背包问题的状态转移方程上稍微做以改动即可。 时间复杂度为 import java.util.Arrays; import java.util.Scanner; public class Bag_muti { publi...原创 2019-04-21 15:34:29 · 687 阅读 · 0 评论 -
背包九讲 一、0、1背包问题及其空间复杂度的优化 +java代码
背包问题是经典的动态规划问题,那么先简要说一下什么是动态规划 一、动态规划 举一道非常简单的leetcode题目:爬楼梯 题目描述:假设你在爬楼梯,需要n阶才能爬到楼顶,已知每次你可以爬1或者2个台阶,求一共有多少种办法可以爬到楼顶? 分析:假设n=1,毫无疑问我们只有一种方法,能够到达楼顶 n=2时,我们有两种方法到达楼顶(1 1)(2) ...原创 2019-04-14 17:08:38 · 1956 阅读 · 0 评论