背包问题九讲和源程序(答案)解析.doc

背包问题九讲和源程序(答案)解析

背包问题九讲和源程序(答案).txt台湾一日不收复,我一日不过4级!如果太阳不出来了,我就不去上班了;如果出来了,我就继续睡觉!目录 第一讲 01背包问题 这是最基本的背包问题,每个物品最多只能放一次。 第二讲 完全背包问题 第二个基本的背包问题模型,每种物品可以放无限多次。 第三讲 多重背包问题 每种物品有一个固定的次数上限。 第四讲 混合三种背包问题 将前面三种简单的问题叠加成较复杂的问题。 第五讲 二维费用的背包问题 一个简单的常见扩展。 第六讲 分组的背包问题 一种题目类型,也是一个有用的模型。后两节的基础。 第七讲 有依赖的背包问题 另一种给物品的选取加上限制的方法。 第八讲 泛化物品 我自己关于背包问题的思考成果,有一点抽象。 第九讲 背包问题问法的变化 试图触类旁通、举一反三。 附:USACO中的背包问题 给出 USACO Training 上可供练习的背包问题列表,及简单的解答。 P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是: f[i][v]=max{f[i-1][v],f[

文档评论(0)

1亿VIP精品文档

相关文档