![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
背包九讲
while_black
这个作者很懒,什么都没留下…
展开
-
分组的背包问题
https://www.cnblogs.com/wzrdl/p/9772338.html分组背包其实也不难,弄清楚前面的这里就十分好解决了有容积为V的背包,有n件物品,每种物品属于的组别不同,t为最大的组数,每组中的物品相互冲突,所以只能选其中一件接下来是每件物品的重量w[i],价值v[i],以及组号x,求最大的价值因为每组物品只能选一件,我们很容易把这转化为01背包显然dp方...转载 2019-05-04 14:40:41 · 507 阅读 · 0 评论 -
有依赖的背包问题
这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖;另外,没有某件物品同时依赖多件物品。...转载 2019-05-04 14:57:32 · 665 阅读 · 0 评论 -
A - Bone Collector ( 01 背包问题(一维dp[ ] 的精确运用)(一个物件仅能选择一次时,为01背包问题,01代表,不选与选的抉择)
A - Bone CollectorMany 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 grave …...原创 2019-04-07 14:37:51 · 455 阅读 · 0 评论 -
J - Robberies ( 01背包问题的变形)
J - RobberiesThe aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has decided to wor...原创 2019-04-08 23:33:52 · 259 阅读 · 0 评论 -
01背包问题不能用性价比作为选择的标准
如果不是0-1问题的话,当然可以通过比较性价比来做,这时候可考虑用贪心算法;但如果是0-1问题的话就不能单纯“用性价比来做”了,因为有可能背包空出一大块。举个简单的例子:一个背包的容量是10KG,物品A重7KG,价值为14元,物品B重6KG,价值为11元,物品C中4KG,价值为7元,从性价比来看,A最高,但是将A放到背包里以后,无法放进其他物品了,此时总价值为14元;显然,本问题的最...转载 2019-04-11 11:37:55 · 749 阅读 · 0 评论 -
饭卡(01背包问题,思维灵通)
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。Input多组数据。对于每组数据:第一行为正整数n,表示...原创 2019-04-12 19:37:32 · 240 阅读 · 0 评论 -
N - Proud Merchants(POJ 3466 01背包+排序)
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 very proud even if their n...原创 2019-04-12 21:13:32 · 161 阅读 · 0 评论 -
B - Piggy-Bank ( 完全背包问题(求最小值时,一维dp[ ] 的精确使用)(无限制次数的选择同一个物件时,就是完全背包问题)
B - Piggy-BankBefore 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). The idea ...原创 2019-04-07 17:32:35 · 494 阅读 · 0 评论 -
背包问题 01背包 完全背包 多重背包 【动态规划】
题目 01背包有N件物品和一个容量为V的背包。第i件物品的重量是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。 基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i]...原创 2019-04-07 00:18:56 · 953 阅读 · 0 评论 -
庆功会 ( 多重背包问题(多重背包问题 变成 01背包问题 ,主要是把他变成log(s),1,2,4,8,16.。。。最后再补上(s-t)*x就是最后缺失的部分
有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这里又多了一个限制条件,每个物品规定了可用的次数。这比较符合实际生活问题!!( 关键在于把:多重背包问题 变成 01背包问题 )()庆功会【问题描述】为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一...原创 2019-04-07 23:00:01 · 291 阅读 · 0 评论 -
多重背包问题(分成 log(s)(1,2,4,8…….)份。这样可以将数据规模的扩大降到最低)
N范围在103 10^3103时不能用N3 N^3N3的做法需要用到多重背包的二进制优化方法。如果一个物品有s个,则分成s份,变成01背包问题不能直接拆,会扩大数据规模。可以用二进制拆法一个有s件的物品,要把它分成s个选和不选,可以把它分成log(s)(1,2,4,8…….)份。这样可以将数据规模的扩大降到最低。比如19件,分成1,2,4,8,4(补)份(这样的数据...转载 2019-04-08 00:32:32 · 142 阅读 · 0 评论 -
背包九讲之混合背包问题
https://blog.csdn.net/u013054715/article/details/52436140背包九讲之混合背包问题注意事项: 混合背包的理解请建立在01背包与完全背包、多重背包的基础上。 01背包:http://blog.csdn.net/u013054715/article/details/52402304 ...转载 2019-05-03 21:51:47 · 169 阅读 · 0 评论 -
混合三种背包问题
问题如果将01背包、完全背包、多重背包混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合考虑到在01背包和完全背包中最后给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据物品的类别选用顺序或...原创 2019-05-03 22:35:47 · 443 阅读 · 0 评论 -
DP复习——二维费用的背包
https://blog.csdn.net/qq_39670434/article/details/79476427二维费用的背包就是一个01背包的进化版。但是涉及状态的时候要设两种状态。二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1...转载 2019-05-04 00:25:15 · 164 阅读 · 0 评论 -
二维费用的背包问题
https://blog.csdn.net/stack_queue/article/details/53544109问题二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付...转载 2019-05-04 11:11:34 · 366 阅读 · 0 评论 -
泛化物品
考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0..V],给它费用v,可得到价值h[V]。一个费用为c价值为w的物品,如果它...转载 2019-05-04 14:58:25 · 353 阅读 · 0 评论