背包问题经典例题

背包问题是经典的动态规划,分为0-1背包、完全背包和多重背包,0-1背包就是选或者不选,完全背包就是物品的数量是无限个,选择几个的问题。多重背包就是每一件物品的数量不同如何选择的问题。
主要掌握01和完全即可

01 背包

适用于

  1. 典型的01背包问题,n个物品,他们都有自己的质量和价值,有一个背包容积是V,问能拿取的物品的最大价值是多少 ACW_E2
  2. 从一个序列中取若干个值,使得这些值的和最接近target,问这个最接近的值是多少 M1049
  3. 从一个序列中取若干个值,使得这些值的和为target,问有多少种挑选的方法 M494
  4. 从一组物品中挑选若干个,物品既有体积也有重量,这并不是多重背包,而是物品的重量有了两个维度 M474

完全背包

与01背包唯一的区别就是物品的个数是无限的

  1. 典型的完全背包问题,ACW_E3 dp[j]=max(dp[j],dp[j-vs[i]]+ws[i])
  2. 从一个数组中挑选若干个数组合成新的数,且每一个数都不限制个数,M518 dp[j] += dp[j-coins[i]]
  3. 从一个数组中挑选若干个数组合成新的数,且每一个数都不限制个数,至少多少个数可以组合成目标数 M322 dp[j]=min(dp[j],dp[j-coins[i]]+1)
  4. 从一个数组中挑选若干个数组合成新的数,且每一个数都不限制个数,但是问排列类型有多少,M377 先容量再物品 dp[j]+=dp[j-nums[i]]

树上背包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值