编程语言
首页 > 编程语言> > AcWing 算法基础课 动态规划

AcWing 算法基础课 动态规划

作者:互联网

1、背包问题

  (1)01背包

  每件物品仅用一次 

  可以做空间优化

  dp[j]=max(dp[j],dp[j-v[i]]+w[i]);   

  0,1背包状态均是从前一循环的状态转移

  

  (2)完全背包

  每件物品可以用无限次

  dp[j]=max(dp[j],dp[j-v[i]]+w[i]);

  

  完全背包的状态可以从当前循环的状态转移,进行优化

  

 

 

 

 

 

  (3)多重背包

  每件物品有不同的数量限制

  可以对物品的数量限制进行拆分(1~2^k+c),从而转化为01背包问题

  

  也可以用单调队列进行优化(B站,背包9讲)

  (4)分组背包

  组内仅选一件物品  

  与01背包和完全背包相似,

  dp时枚举第i组而不是第i个物品,

  每组中再对组内物品进行枚举。

 

标签:max,背包,件物品,算法,01,基础课,物品,dp,AcWing
来源: https://www.cnblogs.com/ydUESTC/p/15865549.html