完全背包问题,是最基础的动态规划问题之一。是动态规划入门必须掌握的问题之一。
首先理解动态规划的几个概念
1.递推关系(高大上的名字:状态转移方程)这是解决动态规划问题很重要的一步,找出递推关系,解决一道题可能有不同的递推关系。
2.保存数组:保存满足条件的极大值
int dp[MAX_N+1][MAX_W+1];
void solve()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<=w;j++)
{
判断是否能装该行对应物品
max(同列上一行,同行装该行所对应物品一个后属性值)
保存数组
纵轴是i(物品种类数)横轴是容量,值是用可获容量能达到的最大值。
简述算法思想,物品种类从少到多,容量从小到大,每向下移动一个格子,意味这多考虑一种物品,
实际运行时,数组一列一列的填充
(未完待续)
|
i\j | 0 |
---|---|
0 | 种类为零容量为零的值 |
表格向右下拓展