dd大牛的背包九讲 pdf下载_动态规划_____背包九讲完整版.pdf

动态规划_____背包九讲完整版

背包问题九讲 v1.0

目录

第一讲 01 背包问题

第二讲 完全背包问题

第三讲 多重背包问题

第四讲 混合三种背包问题

第五讲 二维费用的背包问题

第六讲 分组的背包问题

第七讲 有依赖的背包问题

第八讲 泛化物品

第九讲 背包问题问法的变化

附:USACO中的背包问题

前言

本篇文章是我 (dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个

计划的内容是写作一份较为完善的 NOIP 难度的动态规划总结,名为《解动态规

划题的基本思考方式》。现在你看到的是这个写作计划最先发布的一部分。

背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上

能够揭示动态规划的本质,故不少教材都把它作为动态规划部分的第一道例题,

我也将它放在我的写作计划的第一部分。

读本文最重要的是思考。因为我的语言和写作方式向来不以易于理解为长,思路

也偶有跳跃的地方,后面更有需要大量思考才能理解的比较抽象的内容。更重要

的是:不大量思考,绝对不可能学好动态规划这一信息学奥赛中最精致的部分。

你现在看到的是本文的 1.0 正式版。我会长期维护这份文本,把大家的意见和建

议融入其中,也会不断加入我在OI学习以及将来可能的ACM-ICPC的征程中得到的

新的心得。但目前本文还没有一个固定的发布页面,想了解本文是否有更新版本

发布,可以在OIBH论坛中以 “背包问题九讲”为关键字搜索贴子,每次比较重大

的版本更新都会在这里发贴公布。

目录

第一讲 01 背包问题

这是最基本的背包问题,每个物品最多只能放一次。

第二讲 完全背包问题

第二个基本的背包问题模型,每种物品可以放无限多次。

1

第三讲 多重背包问题

每种物品有一个固定的次数上限。

第四讲 混合三种背包问题

将前面三种简单的问题叠加成较复杂的问题。

第五讲 二维费用的背包问题

一个简单的常见扩展。

第六讲 分组的背包问题

一种题目类型,也是一个有用的模型。后两节的基础。

第七讲 有依赖的背包问题

另一种给物品的选取加上限制的方法。

第八讲 泛化物品

我自己关于背包问题的思考成果,有一点抽象。

第九讲 背包问题问法的变化

试图触类旁通、举一反三。

附:USACO中的背包问题

给出 USACO Training 上可供练习的背包问题列表,及简单的解答。

联系方式

如果有任何意见和建议,特别是文章的错误和不足,或者希望为文章添加新的材

料,可以通过/user/tianyi/这个网页联系我。

致谢

感谢以下名单:

• 阿坦

• jason911

• donglixp

2

他们每人都最先指出了本文第一个 beta 版中的某个并非无关紧要的错误。谢谢

你们如此仔细地阅读拙作并弥补我的疏漏。

感谢 XiaQ,它针对本文的第一个beta 版发表了用词严厉的六条建议,虽然我只

认同并采纳了其中的两条。在所有读者几乎一边倒的赞扬将我包围的当时,你的

贴子是我的一剂清醒剂,让我能清醒起来并用更严厉的眼光审视自己的作品。

当然,还有用各种方式对我表示鼓励和支持的几乎无法计数的同学。不管是当面

赞扬,或是在论坛上回复我的贴子,不管是发来热情洋溢的邮件,或是在即时聊

天的窗口里竖起大拇指,你们的鼓励和支持是支撑我的写作计划的强大动力,也

鞭策着我不断提高自身水平,谢谢你们!

最后,感谢 Emacs 这一世界最强大的编辑器的所有贡献者,感谢它的插

件 EmacsMuse 的开发者们,本文的所有编辑工作都借助这两个卓越的自由软件

完成。谢谢你们—— 自由软件社群——为社会提供了如此有生产力的工具。我深

深钦佩你们身上体现出的自由软件的精神,没有你们的感召,我不能完成本文。

在你们的影响下,采用自由文档的方式发布本文档,也是我对自由社会事业的微

薄努力。

3

P01: 01 背包问题

题目

有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 c[i],价值是w[i]。

求解将哪些物品装入背包可使价值总和最大。

基本思路

这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。

用子问题定义状态:即 f[i][v]表示前 i 件物品恰放入一个容量为

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值