动态规划-背包九讲:入门组

什么是背包

问题可以描述为:
给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
什么?你看不懂?哈哈哈嗝:)
说白了,就是放一堆东西到一个容器,让容器能装的东西价值最大

背包的分类

  • 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背包呢?
它总要有个名字啊&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值