十三. 动态规划(背包问题)

本文介绍了动态规划在解决背包问题中的应用,包括0,1背包、完全背包和多重背包问题。通过实例展示了如何求解在背包承载限制下能获得的最大价值,涉及《背包九讲》中的经典题目,如零钱兑换、硬币问题和整数拆分等。" 127230739,6288678,Spring 源码解析:Spring 容器初始化与XML配置,"['Spring框架', 'Java开发', '源码学习']
摘要由CSDN通过智能技术生成

dd大牛的《背包九讲》 - 贺佐安 - 博客园

 背包问题模板:状态 + 选择

for 状态1 in 状态1的所有取值:
    for 状态2 in 状态2的所有取值:
        dp[状态1][状态2] = 择优(选择1,选择2)

0,1背包:不可重复选

一共有 n 件物品,第 i 件物品的重量为 w[i],价值为 v[i]。在总重量不超过背包承载上限m的情况下,能够装入背包的最大价值是多少?

dp[i][j]表示将前 i 件物品装进容量为 j 的背包可以获得的最大价值
for i = 1, 2, ..., n: # 枚举物品
    for j = m, m-1, ... , w[i]: # 枚举容量;逆向;w[i] <= j: 第 i 个物品的容量必须小于 j 才选 
		# 不选第i个物品和选第i个物品 最大值价值
        dp[i][j] = max(dp[i-1][j], dp[i-1][j-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值