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背包类似,但是每件物品的个数不限量,