摘要: 问题描述: 给出N种物品,每个物品无限件可选,对应的体积为w[i],这些物品可以使多大的背包完全装满? V <= 1000 直接在上一篇的基础上修改: 第i次循环后,dp[j]表示容量为j的背包可以被前i种物品装满。 递推关系: dp[j] == true => dp[j + w[i] ]= tru 阅读全文
posted @ 2017-11-22 17:31 newbird2017 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 给出N个物品,每个物品的体积为w[i],这些物品可以使多大的背包完全装满? 分析: 用dp[v]表示容量为i的背包可以被装满。 0 <= v <= sum(w[i]) 在循环开始前,初始化dp[0] = true,dp[i] = false (i>0)。 第一次循环,表示只有一件物品可选 阅读全文
posted @ 2017-11-22 17:22 newbird2017 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 有N种物品,每种物品有无限量可选。每种物品对应的重量和价值分别为w[i]和p[i]。用容量为V的背包,任意选取。怎样使总价值最大。 一、笨方法,也是最容易理解的方式: 考虑dp[i][V]表示剩余容量为V,可选物品种类为i时的最优解。 那么第i件的选择方式有两种: 1、不选:dp[ i 阅读全文
posted @ 2017-11-22 17:00 newbird2017 阅读(787) 评论(0) 推荐(0) 编辑