数据结构与算法
_我想喝可乐
这个作者很懒,什么都没留下…
展开
-
背包问题【完全背包】
完全背包题目描述:有n种物品,每个物品有一个重量w 和 价值 v。但是每种物品的数量是无限,同时有一个背包,最大载重 m, 从 n中物品中选出若干件(同一种物品可以选多次),使其重量和 <= m,并且价值和最大。完全背与01背包区别: 完全背包每种物品数量是无限,01背包每种物品数量只有一个解析:每件物品可以拿取 0,1,2,3 … n 个直到装满,那么可以获取物品数量为 0 ~ m / w[i]朴素算法:对比01背包(每次拿0个或1个),完全背包拿每次拿0个,1个,2个…直到 j / w原创 2022-02-19 14:35:42 · 396 阅读 · 0 评论 -
背包问题【01背包】
01背包问题:给定n中物品和一个容量为c的背包,物品i的重量的w[i],其价值为v[i]。问:如何选择装入背包的物品,使得装入背包中的物品的总价值最大?分析:面对物品,我们只有选择拿与不拿两种选择,不能选择装入某物品的一部分,也不能装入同一物品多次。解释:为什么叫 01背包 ?拿0、不拿1。先声明一个大小为 dp[i][j] 数组,表示从下标为 [0-i] 的物品里任意取,放进容量为j的背包,价值总和最大是多少。注:i 表示第几个物品,j 表示背包的总容量。状态转移方程:状态转移表:代码原创 2022-02-19 13:36:58 · 609 阅读 · 0 评论