博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
背包问题九讲
阅读量:5978 次
发布时间:2019-06-20

本文共 1674 字,大约阅读时间需要 5 分钟。

背包问题九讲

version 1.1 build 20071115

前言

本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度的动态规划总结,名为《解动态规划题的基本思考方式》。现在你看到的是这个写作计划最先发布的一部分。

背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上能够揭示动态规划的本质,故不少教材都把它作为动态规划部分的第一道例题,我也将它放在我的写作计划的第一部分。

读本文最重要的是思考。因为我的语言和写作方式向来不以易于理解为长,思路也偶有跳跃的地方,后面更有需要大量思考才能理解的比较抽象的内容。更重要的是:不大量思考,绝对不可能学好动态规划这一信息学奥赛中最精致的部分。

你现在看到的是本文的v1.1版,发布于2007年11月15日。我会长期维护这份文本,把大家的意见和建议融入其中,也会不断加入我在OI学习以及将来可能的ACM-ICPC的征程中得到的新的心得。但目前本文还没有一个固定的发布页面,想了解本文是否有更新版本发布,可以在中以“背包问题九讲”为关键字搜索贴子,每次比较重大的版本更新都会在这个论坛里发贴公布。也可以用“背包问题九讲”为关键字在搜索引擎中搜索以得到最新版本。

目录

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

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

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

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

一个简单的常见扩展。

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

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

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

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

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

除动态规划外另一种背包问题的解法。

联系方式

如果有任何意见和建议,特别是文章的错误和不足,或者希望为文章添加新的材料,可以通过这个网页联系我。

值得说明的是,如果有OI方面的问题,例如不明白自己的程序为什么错了或者索要某种算法的源代码,使用这个联系方式可能得不到及时解答。请在发问。

致谢

感谢以下名单:

  • 阿坦
  • jason911
  • donglixp
  • LeafDuo

他们每人都最先指出了本文曾经存在的某个并非无关紧要的错误。谢谢你们如此仔细地阅读拙作并弥补我的疏漏。

感谢 XiaQ,它针对本文的第一个beta版发表了用词严厉的六条建议,虽然我只认同并采纳了其中的两条。在所有读者几乎一边倒的赞扬将我包围的当时,你的贴子是我的一剂清醒剂,让我能清醒起来并用更严厉的眼光审视自己的作品。

sfita 提供了中的“一个常数优化”。

当然,还有用各种方式对我表示鼓励和支持的几乎无法计数的同学。不管是当面赞扬,或是在论坛上回复我的贴子,不管是发来热情洋溢的邮件,或是在即时聊天的窗口里竖起大拇指,你们的鼓励和支持是支撑我的写作计划的强大动力,也鞭策着我不断提高自身水平,谢谢你们!

最后,感谢  这一世界最强大的编辑器的所有贡献者,感谢它的插件  的开发者们,本文的所有编辑工作都借助这两个卓越的自由软件完成。谢谢你们——自由软件社群——为社会提供了如此有生产力的工具。我深深钦佩你们身上体现出的自由软件的精神,没有你们的感召,我不能完成本文。在你们的影响下,采用自由文档的方式发布本文档,也是我对自由社会事业的微薄努力。


Copyright (c) 2007 Tianyi Cui

Permission is granted to copy, distribute and/or modify this document under the terms of the , Version 1.2 or any later version published by the Free Software Foundation.

转载于:https://www.cnblogs.com/Archger/p/8451603.html

你可能感兴趣的文章
JavaScript:Array 对象
查看>>
PDFCreator:一款免费,开源的PDF(Tiff,pcx,png,jpeg,bmp,PS,EPS)打印机(VB,GPL),并提供了COM接口,方便使用各种编程语言调用...
查看>>
PostgreSQL集群方案相关索引页
查看>>
Note 1773479 - SYB: Displaying multiple triggers per object
查看>>
《Java编程思想》读书笔记(5)
查看>>
全排列
查看>>
B3log部署文档
查看>>
第 27 章 C++
查看>>
典型:Eayui项目aspx页面引用js
查看>>
Android 中文 API (22) —— MultiAutoCompleteTextView
查看>>
8.5. show mac-address-table
查看>>
10.2。PHP_CodeSniffer
查看>>
煮酒论AI,看看大牛怎么说
查看>>
利用多线程解决多业务不同定时区间歇触发问题的一种方法
查看>>
DDD~WCF做中间件,实现多个项目的缓存共享
查看>>
分布式系统的那些事儿(六) - SOA架构体系
查看>>
0-1背包-分支限界
查看>>
iOS开发之全局变量
查看>>
微信网页开发之创建Controller(三)
查看>>
二叉排序树
查看>>