动态规划——背包问题
背包问题
Alex_McAvoy
想要成为渔夫的猎手
展开
-
动态规划 —— 背包问题
【概述】 背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。也可以将背包问题描述为决定性问题,即:在总重量不超过W的前提下,总价值是否能达到V?【分类】P01 0...原创 2018-03-31 10:02:18 · 2139 阅读 · 0 评论 -
动态规划 —— 背包问题 —— 背包问题模版
【0-1背包】#include<iostream>#define MAX 101using namespace std;int V,N;int w[MAX],c[MAX],f[MAX];void ZeroOnePack(int cost,int weight){ for(int v=V;v>=weight;v--) f[v]=max(f[...原创 2018-06-03 00:20:52 · 847 阅读 · 0 评论 -
动态规划 —— 背包问题 P01 —— 0-1背包
【概述】 0-1背包问题是最基本的背包问题,它包含了背包问题中设计状态、方程的最基本思想,另外,别的类型的背包问题往往也可以转换成0-1背包问题求解。特点:每种物品仅有一件,可以选择放或不放。【题目】有N件物品和一个容量为V的背包。第i件物品的体积是w[i],价值是c[i]。求解将哪些物品装入背包可使价值总和最大。【基本思路】子问题:将前i件物品放入容...转载 2018-03-31 10:27:22 · 963 阅读 · 0 评论 -
动态规划 —— 背包问题 P02 —— 完全背包
【概述】完全背包问题也是一个相当基础的背包问题,它有两个状态转移方程,分别在“基本思路”以及“O(VN)的算法“的小节中给出。【题目】有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。【基本思路】这个问题非常类似于01背包问题,所不同的是每种物品有无限件...转载 2018-03-31 11:22:56 · 968 阅读 · 0 评论 -
动态规划 —— 背包问题 P03 —— 多重背包
【题目】有 N 种物品和一个容量为 V 的背包。第 i 种物品最多有 num[i] 件可用,每件体积是 w[i],价值是 c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。【基本思路】和完全背包问题很类似,基本的方程只需将完全背包问题的方程略微一改即可。对于第 i 种物品有 num[i]+1种策略:取 0 件,取 1 件……取 num[i] 件,...转载 2018-04-01 14:55:02 · 564 阅读 · 0 评论 -
动态规划 —— 背包问题 P04 —— 混合背包
【概述】如果将P01、P02、P03混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?【01背包与完全背包的混合】考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据物品的类别选用顺序或逆...转载 2018-05-02 21:04:52 · 432 阅读 · 0 评论 -
动态规划 —— 背包问题 P06 —— 分组背包
【问题】有N件物品和一个容量为V的背包。第i件物品的体积w[i],价值是c[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求:将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。【算法】这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有:f[k][v]=ma...转载 2018-05-02 21:14:27 · 803 阅读 · 0 评论 -
动态规划 —— 背包问题 P05 —— 二维背包
【问题】对于每件物品,具有两种不同的体积,选择这件物品必须同时付出这两种代价,对于每种代价都有一个可付出的最大值(背包容量)。问:怎样选择物品可以得到最大的价值?设:这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为c[i]。【算法】费用加了一维,只需状态也加一维即可。设f[i]...转载 2018-05-02 21:08:06 · 906 阅读 · 0 评论 -
动态规划 —— 背包问题 P07 —— 有依赖背包
【简化的问题】这种背包问题的物品间存在某种“依赖”的关系,也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖,另外,没有某件物品同时依赖多件物品。【算法】将不依赖于别的物品的物品称为“主件”,依赖于某主件的物品称为“附件”,所有的物品由若干主件和依赖于每个主件的一个附件集合组成。按照背包问题的一般思路,仅...转载 2018-06-03 22:22:52 · 564 阅读 · 0 评论 -
动态规划 —— 背包问题 P08 —— 泛化物品背包
【定义】泛化物品的概念:有这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。更严格的定义:在背包容量为V的背包中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0..V],给它费用v,可得到价值h[V]。对于一个费用为c价值为w的物品:...转载 2018-06-03 22:40:05 · 1138 阅读 · 0 评论 -
动态规划 —— 背包问题 P09 —— 背包问题的变化
【输出方案】一般而言,背包问题是要求一个最优值,如果要求输出这个最优值的方案,可以参照一般动态规划问题输出方案的方法:记录下每个状态的最优值是由状态转移方程的哪一项推出来的,换句话说,记录下它是由哪一个策略推出来的。便可根据这条策略找到上一个状态,从上一个状态接着向前推即可。还是以01背包为例,方程为f[i][v]=max{f[i-1][v],f[i-1][v-w[i]]+c[i]}。再用...转载 2018-06-03 22:48:32 · 689 阅读 · 0 评论 -
金明的预算方案(洛谷-P1064)
题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具...原创 2018-08-18 13:40:27 · 519 阅读 · 0 评论 -
Ant Counting(POJ-3046)
Problem DescriptionThe cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) different types of blocks ...原创 2018-07-26 18:58:56 · 336 阅读 · 0 评论 -
Dollar Dayz(POJ-3181)
Problem DescriptionFarmer John goes to Dollar Days at The Cow Store and discovers an unlimited number of tools on sale. During his first visit, the tools are selling variously for $1, $2, and $3. Fa...原创 2018-07-19 22:20:57 · 338 阅读 · 0 评论 -
The Fewest Coins(POJ-3260)
Problem DescriptionFarmer John has gone to town to buy some farm supplies. Being a very efficient man, he always pays for his goods in such a way that the smallest number of coins changes hands, i.e...原创 2018-07-24 23:27:34 · 609 阅读 · 0 评论 -
Cow Roller Coaster(POJ-3257)
Problem DescriptionThe cows are building a roller coaster! They want your help to design as fun a roller coaster as possible, while keeping to the budget. The roller coaster will be built on a long ...原创 2018-07-24 15:29:30 · 577 阅读 · 0 评论 -
Charm Bracelet(POJ-3624)
Problem DescriptionBessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from theN (1 ≤ N ≤ 3,402) available charms. ...原创 2018-06-29 00:04:00 · 648 阅读 · 0 评论 -
小A点菜(洛谷-P1164)
题目描述uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩M元 (M≤10000)。餐馆虽低端,但是菜品种类不少,有N种 (N≤100),第i种卖ai元((ai≤1000)。由于是很低端的餐馆,所以每种菜...原创 2018-08-18 13:50:50 · 1033 阅读 · 0 评论 -
Bone Collector(HDU-2602)
Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the gr...原创 2018-03-30 23:10:20 · 376 阅读 · 0 评论 -
Piggy-Bank(HDU-1114)
Problem Description Before ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). ...原创 2018-03-30 23:12:46 · 295 阅读 · 1 评论 -
开心的金明(洛谷-P1060)
题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1−5表示,第5等最重要。他还从因特网上查到了每件物品...原创 2018-08-18 13:47:33 · 715 阅读 · 0 评论 -
Big Event in HDU(HDU-1171)
Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. But, maybe you don't know that Computer College had ever been split into Computer College and Sof...原创 2018-03-30 23:15:18 · 254 阅读 · 0 评论 -
采药(洛谷-P1048)
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是...原创 2018-08-18 13:54:24 · 1786 阅读 · 0 评论 -
装箱问题(洛谷-P1049)
题目描述有一个箱子容量为V(正整数, 0≤V≤20000),同时有n个物品(0<n≤30,每个物品有一个体积(正整数)要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入输出格式输入格式:1个整数,表示箱子容量1个整数,表示有n个物品接下来n行,分别表示这n个物品的各自体积输出格式:1个整数,表示箱子剩余空间...原创 2018-08-18 13:56:42 · 983 阅读 · 0 评论 -
高橋君とカード / Tak and Cards(AtCoder-2037)
Problem DescriptionTak has N cards. On the i-th (1≤i≤N) card is written an integer xi. He is selecting one or more cards from these N cards, so that the average of the integers written on the selec...原创 2019-05-19 19:07:11 · 534 阅读 · 0 评论 -
Course Selection System(ZOJ-3956)
Problem DescriptionThere arencourses in the course selection system of Marjar University. Thei-th course is described by two values: happinessHiand creditCi. If a student selectsmcoursesx1...原创 2019-05-02 15:00:10 · 480 阅读 · 0 评论 -
正整数分组(51Nod-1007)
题目将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。输入第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N <= 100, 所有正整数的和 <= 10000)输出输出这个最小差输入样例512345输出样例1思...原创 2019-04-16 22:26:21 · 420 阅读 · 2 评论 -
Battle Ships(ZOJ-3623)
Problem DescriptionBattle Ships is a new game which is similar to Star Craft. In this game, the enemy builds a defense tower, which has L longevity. The player has a military factory, which can pro...原创 2019-03-16 15:33:29 · 375 阅读 · 0 评论 -
Washing Clothes(POJ-3211)
Problem DescriptionDearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a beautiful and hard-working girlfriend to help him. The clothes are in varieties of colors...原创 2019-03-14 18:42:48 · 529 阅读 · 0 评论 -
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(HDU-2191)
Problem Description急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的生命过程,天灾、人祸、病痛是我们生命历程中不可预知的威胁。月有阴晴圆缺...原创 2019-03-14 16:34:04 · 502 阅读 · 0 评论 -
Dima and Salad(CF-366C)
Problem DescriptionDima, Inna and Seryozha have gathered in a room. That's right, someone's got to go. To cheer Seryozha up and inspire him to have a walk, Inna decided to cook something.Dima and ...原创 2019-01-16 20:23:59 · 404 阅读 · 0 评论 -
Buns(CF-106C)
Problem DescriptionLavrenty, a baker, is going to make several buns with stuffings and sell them.Lavrenty has n grams of dough as well as m different stuffing types. The stuffing types are numerat...原创 2019-01-14 22:22:43 · 415 阅读 · 0 评论 -
多米诺骨牌(洛谷-P1282)
题目描述多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|。例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2。每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置。 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小。对于图中的例子,...原创 2018-08-20 16:24:06 · 1174 阅读 · 0 评论 -
Proud Merchants(HDU-3466)
Problem Description Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still v...原创 2018-03-31 21:41:58 · 272 阅读 · 0 评论 -
烹调方案(洛谷-P1417)
题目描述一共有n件食材,每件食材有三个属性,ai,bi和ci,如果在t时刻完成第i样食材则得到ai-t*bi的美味指数,用第i件食材做饭要花去ci的时间。众所周知,gw的厨艺不怎么样,所以他需要你设计烹调方案使得美味指数最大输入输出格式输入格式:第一行是两个正整数T和n,表示到达地球所需时间和食材个数。下面一行n个整数,ai下面一行n个整数,bi下面一行n个整数,c...原创 2018-08-21 20:09:57 · 466 阅读 · 0 评论 -
榨取kkksc03(洛谷-P1855)
题目描述洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业并成功举办过一次公开比赛),那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望。Kkksc03的时间和金钱是有限的,所以他很难满足所有同学的愿望。所以他想知道在自己的能力范围内,最...原创 2018-08-21 20:08:19 · 550 阅读 · 0 评论 -
疯狂的采药(洛谷-P1616)
题目描述LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同种类的草药,采每一种都需要一些时间,每一种也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最...原创 2018-08-18 13:58:17 · 1406 阅读 · 2 评论 -
Simple Knapsack(AtCoder-2556)
Problem DescriptionYou have N items and a bag of strength W. The i-th item has a weight of wi and a value of vi.You will select some of the items and put them in the bag. Here, the total weight o...原创 2019-06-06 21:20:04 · 424 阅读 · 0 评论 -
买书(信息学奥数一本通-T1293)
【题目描述】小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。问小明有多少种买书方案?【输入】第一行为n和m。一个整数 n,代表总共钱数。(0 ≤ n ≤ 1000)【输出】一行,方案数。【输入样例】20【输出样例】2【源程序】#include<iostream>#include<cstdio&...原创 2018-06-04 00:19:28 · 2592 阅读 · 0 评论 -
宠物小精灵之收服(信息学奥赛一本通-T1292)
【题目描述】宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而,野生的小精灵并不那么容易被收服。对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。当皮卡丘的体力小于等于0时,小智就必...原创 2018-06-04 00:19:09 · 3890 阅读 · 0 评论