
背包问题
李逝水
这个作者很懒,什么都没留下…
展开
-
P04: 混合三种背包问题
P04: 混合三种背包问题问题如果将P01、P02、P03混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据转载 2013-03-29 21:20:37 · 460 阅读 · 0 评论 -
钱币兑换问题
钱币兑换问题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3653 Accepted Submission(s): 2059Problem Description在一个国家仅有1分,2分,3分硬币,将钱N兑换原创 2013-04-09 19:31:22 · 1453 阅读 · 0 评论 -
Sumsets+dp+求组合方式
SumsetsTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1027 Accepted Submission(s): 403Problem DescriptionFarmer John commanded h原创 2013-04-11 10:37:16 · 626 阅读 · 0 评论 -
Bone Collector
Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 18148 Accepted Submission(s): 7167Problem DescriptionMany years ago原创 2013-04-11 08:42:51 · 520 阅读 · 0 评论 -
FATE
FATETime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4785 Accepted Submission(s): 2153Problem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极原创 2013-04-10 21:20:18 · 665 阅读 · 0 评论 -
1460.最高得分--01背包问题
1460.最高得分Time Limit: 1000 MS Memory Limit: 65536 KTotal Submissions: 175 (36 users) Accepted: 34 (28 users)[ My Solution]Description在很多算法比赛的网站上, 我们常常能看到一些和ACM比赛不太相同的比原创 2013-03-31 21:43:20 · 552 阅读 · 0 评论 -
I NEED A OFFER!
I NEED A OFFER!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11409 Accepted Submission(s): 4342Problem DescriptionSpeakless很早就想原创 2013-04-09 08:43:28 · 513 阅读 · 0 评论 -
P01: 01背包问题
P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f转载 2013-03-29 21:18:34 · 507 阅读 · 0 评论 -
P06: 分组的背包问题
P06: 分组的背包问题问题有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有转载 2013-03-29 21:21:29 · 588 阅读 · 0 评论 -
P02: 完全背包问题
P02: 完全背包问题题目有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。如果仍然按转载 2013-03-29 21:19:18 · 399 阅读 · 0 评论 -
P09: 背包问题问法的变化
P09: 背包问题问法的变化以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这里值得提一下。但是我认为,只要深入理解了求背包问题最大价值的方法,即使问法变化了,也是不难想出算法的。例如,求解最多可以放多少件物品或者最多可以装满多少背包的空间。这都可以根据具体问题利用前面的方程求出所有状态的值(f数组)之后得到。还有,如果要转载 2013-03-29 21:24:12 · 478 阅读 · 0 评论 -
P08: 泛化物品
P08: 泛化物品定义考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0..V],给它费用v,可得到价值h[V]。一个转载 2013-03-29 21:22:32 · 493 阅读 · 0 评论 -
P05: 二维费用的背包问题
P05: 二维费用的背包问题问题二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为w[i]。算法费用加了一维,转载 2013-03-29 21:21:03 · 508 阅读 · 0 评论 -
P03: 多重背包问题
P03: 多重背包问题题目有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本算法这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i种转载 2013-03-29 21:19:48 · 489 阅读 · 0 评论 -
P07: 有依赖的背包问题
P07: 有依赖的背包问题简化的问题这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖;另外,没有某件物品同时依赖多件物品。算法这个问题由NOIP2006金明的预算方案一题扩展而来。遵从该题的提法,将不依赖于别的物品的物品称为“主件”,依赖于某主件的物品称为“附件”转载 2013-03-29 21:22:03 · 448 阅读 · 0 评论 -
Big Event in HDU
Big Event in HDUTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 16103 Accepted Submission(s): 5677Problem DescriptionNowadays, w原创 2013-04-08 21:45:46 · 482 阅读 · 0 评论