背包问题学习及归纳

Posted linzeli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了背包问题学习及归纳相关的知识,希望对你有一定的参考价值。

1.01背包问题

      顾名思义,及每种物品可以选择放或不放,于是就有了最朴素的转移式:f[i][j]=max{f[i-1][j],f[i-1][j-w[i]]+c[i]},然后考虑优化空间,可转换为f[j]=max(f[j],f[j-w[i]]+c[i])注意j要逆序的从m到1(保证从已决定推到未决定);

2.完全背包问题

    与01背包类似,但是关键的不同在于其j要顺序的从1到n,因为需要一个可能已选的子结果,然后同理可得f[j]=max(f[j],f[j-w[i]]+c[i]);

3.多重背包问题

   基本想法是f[i][v]=max(f[i][j],f[i-1][j-k*w[i]+k*c[i]),(0<=k<=n[i]&&k*w[i]<=j);转换为01背包问题即把每一个拆分为n[i]个,这样时间和空间的复杂度为O(V*sum(n[i]));然后考虑优化,

    

 




以上是关于背包问题学习及归纳的主要内容,如果未能解决你的问题,请参考以下文章

DP之背包问题详解及案例

第二讲 完全背包问题(对背包九讲的学习)

找换硬币问题 与 0-1背包问题区别

[学习笔记]背包问题

学习数据结构笔记(17) --- [动态规划(由背包问题引入)]

(容量超大)or(容量及价值)超大背包问题 ( 折半枚举 || 改变 dp 意义 )