背包算法
Lottuses
.
展开
-
“无敌复杂”“无敌难”的C++背包问题
背包问题总是被许多“年轻”同学叨叨:“诶亚,这么难,我做不了! ”“我才不想做哩 ”今天,我给大家分享整理一下我做背包问题的整体思路与算法。背包问题的终极框架:“01背包”【例n】有一个旅行者,他有一个无敌的背包,容量大得很:V。然后,他有N件不知名的物品,把某件物品放入背包可以获得这件物品的价值c,又会使无敌背包减少还能装下的重量。所以,现在他想要让背包装得下,又要让自己获得最大的价值,请...原创 2020-03-25 16:01:29 · 460 阅读 · 0 评论 -
【C++背包】生活中不可能出现的背包问题
上次,我们讲了最基础最基础…的01背包问题,这次,我们就来讲一下关于生活中不可能出现的背包问题无敌完全背包问题经典问题【例n+1】之前的旅行者回来了。他胜利归来,带来了很多很多东西。又过了几天,他的手的脚又开始痒痒了。于是,他又开始准备东西,继续去探险。他有N种不同物品,又有一个容量为V的背包,每件物品都可以无限拿,。让这位旅行者获得最大的生存几率,然后又使背包不会超限,请变出编出程序,帮助...原创 2020-03-26 10:17:42 · 293 阅读 · 0 评论 -
【C++背包】喜欢冲突的分组背包问题
上次我们讲了二维费用的背包问题与混合背包问题,今天,我们来介绍一下喜欢 打架 的背包问题——分组背包问题。分组背包问题最初始的问题例【n+n】一个旅行者有一个容量为V的超级背包。现在有n件物品,他们有各自的重量,他们也有各自对应的价值。这些物品被划分为若干组,每个组的每个物品之间都有矛盾,所以,为了让他们 打架 不打架,所以每组只能派出一位“代表”进入背包。请问,能装下的最大价值是多少?诶...原创 2020-03-30 14:27:06 · 829 阅读 · 0 评论 -
【C++背包】大烦恼混合三种背包与二维费用的背包问题
上一次,我们讲了多重背包问题,其中讲的天花乱坠,希望所有的读者能够听懂 :》这次,我们将两种背包问题一起讲了,就是让人烦恼的混合背包问题与二维费用的背包问题。混合背包问题经典题型上次的旅行者,又要开始旅途了!谁知道他这次会去哪里呢?他有N件物品,还有一个容量为V的三级 包,重量w[i],价值c[i],有的医疗箱 物品可以取一次,有的医疗包 物品可以取n[i]次,有的绷带 物品能无限...原创 2020-03-27 10:23:22 · 376 阅读 · 0 评论 -
【C++背包】稀奇古怪的多重背包问题
在这之前,我们讲到了01背包与完全背包。这次,我们来讲一讲很搞笑又稀奇古怪的(我不认为)多重背包问题。多重背包问题经典例题例【n+2】这位流浪的探险者被困在了海岛上。有一天,他发现了一艘船,于是,他就乘坐这艘船准备回家。这时,他在岛上获取了N种东西,每件物品有n件真古怪哈,价值c,费用w,他需要让带回去的东西有更大的价值,所以,编程帮助他,找出最佳搭配。感觉大家已经能够猜出这个悲催的人是...原创 2020-03-26 15:03:54 · 563 阅读 · 0 评论 -
【C++背包】超级背包大集合
啊哈,经典的背包问题讲完了,这次呢,我们来总结一下背包问题,并整理程序。总结背包问题思路,就是将每一种放进去的情况都列举出来,并比较得到最优值,所以,就能求出最大值。这就是为什么背包问题中动态规划比普通递归要快,就是因为普通递归重复求了很多数值,而动态规划正好相反,把所有值存起来,对比值,求出,一般递归的时间复杂度是指数级,而动态规划基本上是平方级。整理程序(1) 01普通背包问题...原创 2020-04-02 14:33:04 · 1184 阅读 · 0 评论