背包前三讲

https://blog.csdn.net/yoer77/article/details/70943462

一,01背包

描述:自己背了一个背包,有一个容量,面前有n件物品,每件物品有一个价值一个重量,然后用这个背包去装总价值最多的物品

思路:考虑所有的状态,去遍历每一件物品,然后枚举所有的容量从0-m,如果能装下当前物品就计算不装和装(当前物品的价值和剩余重量的最优值之和)的哪个答案更优

 for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=c;j++)
        {
            if(j>=w[i])
                m[i][j]=max(m[i-1][j],m[i-1][j-w[i]]+v[i]);
 
 
            else
                m[i][j]=m[i-1][j];
        }
    }

二,完全背包

和01背包类似,但是每件物品的个数不限量,

原文地址:https://www.cnblogs.com/Lis-/p/9787262.html