现在一共有 N N N 件物品,第i(i从1开始)件物品的重量为 v [ i ] v[i] v[i] ,价值为 w [ i ] w[i] w[i] 。每个物品可以挑选 无数次 ,且在挑选出来的物品的总重量不超过 V V V 的情况下,能装入背包的物品的总价值和最大为多少
二、分析现在我们对每一个物品的抉择就不只是 “选” 和 “不选” 了,因为现在每一个物品可以选择无限次,但是我们的背包容量还是有限制的,假设说一个背包全装第 i i i 个物品,那么最多装 K = ⌊ V v [ i ] ⌋ K = \left \lfloor \frac{V}{v[i]} \right \rfloor K=⌊v[i]V⌋ 这么多个,于是我们将每一个物品的 上限次数 求出来了 那么我们的状态转移方程其实就可以写成这样:
F [ i ] [ j ] = m a x { F [ i − 1 ] [ V − k × v [ i ] ] + k × w [ i ] } ( 0 < = k × v [ i ] < = V ) F[i][j] = max\{F[i-1][V-k\times v[i]] + k\times w[i]\} \ (0V; int a,b; int cnt = 0; for(int i = 1;i >a>>b; for(int j = 1,l = V/a;j v[i]>>w[i]; for(int i = 1;i = v[i]; --j) for(int k = 1,l = V/v[i]; k = v[i] * k) f[j] = max(f[j],f[j - v[i] * k] + w[i] * k); cout>w[i]; for(int i = 1;i
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?