
背包问题
文章平均质量分 85
各类背包问题
流年llyz
这个作者很懒,什么都没留下…
展开
-
C++算法篇 动态规划----背包练习答案
NASA的食物计划题目背景NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋,因此在各方压力下终止了航天飞机的历史,但是此类事情会不会在以后发生,谁也无法保证,在遇到这类航天问题时,解决方法也许只能让航天员出仓维修,但是多次的维修会消耗航天员大量的能量,因此NASA便想设计一种食品方案,让体积和承重有限的条件下多装载一些高卡路里的食物.题目描述航天飞机的体积有...原创 2019-12-21 12:06:26 · 1073 阅读 · 1 评论 -
C++ 算法篇 动态规划----背包之一 01背包
一、01背包题目:有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 w[i],价值是 p[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 例,有3个物品,背包容量为10,如下:二维解法:#include<bits/stdc++.h>using namespace std;int f[50][220]={...原创 2019-12-21 12:05:00 · 8160 阅读 · 1 评论 -
C++ 算法篇 动态规划----背包之二 完全背包
完全背包问题:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路: 这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。如果仍然按照解01背包时的思路,令f[i][v]表示前i种物品恰放入一个容量为v的背包的最大权值。仍然可以按照每种物品不...原创 2020-09-15 18:52:48 · 3947 阅读 · 0 评论 -
C++ 算法篇 动态规划----背包之三 多重背包
多重背包有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本算法: 这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i] 件。令f[i][v]表示前i种物品恰放入一个容量为v的背包的最大权值,则:f [i] [v] = max { f [i] [v] , f [...原创 2020-09-15 18:55:55 · 1682 阅读 · 0 评论 -
C++ 算法篇 动态规划----背包之四 混合背包
混合背包 如果将01背包、完全背包、多重背包混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合 考虑到在01背包和完全背包中最后给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据物品的类别选用顺序或逆序的循环即可,复杂度是O(VN)。伪代码如下:for i=1..N if 第i件物品是0原创 2020-09-15 18:58:23 · 2345 阅读 · 0 评论 -
C++ 算法篇 动态规划----背包之五 分组背包
分组背包问题:有N件物品和一个容量为V的背包。第i件物品的费用是w[i],价值是c[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法: 这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有f[k][v]=max{f[k-1][v],f[k-1][v-w[i]]+c[i]|物品i属于第k组}。使用一维..原创 2020-09-15 19:01:48 · 2634 阅读 · 0 评论 -
C++ 算法篇 动态规划----背包之六 二维费用背包
二维费用背包二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为c[i]。算法 费用加了一维,只需状态也加一维即可。设f[i][v][u]表示前i件物品付出两种代价分别为v和u时可获得的最大价值。 状态转移方程就是:f [i]原创 2020-09-15 19:01:29 · 2550 阅读 · 0 评论 -
C++ 算法篇 动态规划----背包之七 有依赖的背包问题
有依赖的背包问题 1、金明的预算方案NOIP 2006 提高组 第二题题目描述:金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工作椅 无如果要买归...原创 2020-09-15 19:02:54 · 863 阅读 · 1 评论