什么是背包
问题可以描述为:
给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
什么?你看不懂?哈哈哈嗝:)
说白了,就是放一堆东西到一个容器,让容器能装的东西价值最大
背包的分类
- 1.01背包
- 2.完全背包
- 3.多重背包(我包含在分组背包内了)
- 4.混合背包
- 5.二维费用
- 6.分组背包
- 7.依赖背包
- 8.背包方案数
本题解只介绍和详细讲解打钩的背包,如果不服,来打我啊!
对了,好人做到底,抄代码的小伙子 我给个链接吧,23333~
https://me.csdn.net/qq_35436309
你什么都没看见,对不对?
好的,我们继续瞎扯蛋。
背包的原理
相信聪明的你,一定学了背包,(废话,不学背包来看什么题解?),所以我们不用讲原理了吧? (日常被打)
好好好,接下来是重点:
利用搜索
不是,是简单的DP,说白了,就是难一点的 递归
好了好了,废话了久,我也该切入主题了。
背包四连
错了错了,不是这张图,是:
01背包:
描述
一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,…,Wn,它们的价值分别为C1,C2,…,Cn,求旅行者能获得最大总价值。
输入
第一行:两个整数,M(背包容量,M≤200)和N(物品数量,N≤30); 第2…N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。
输出
仅一行,一个数,表示最大总价值。
输入样例 1
10 4
2 1
3 3
4 5
7 9
输出样例 1
12
来源
一本通
首先,我们来说一说背包入门
我们以01背包为例:
科普:01背包为什么叫01背包呢?
它总要有个名字啊&