背包问题学习笔记

news2024/11/24 9:37:42

笔记,不是博客,所以就只是粗略的写写

背包问题状态设置

1.小于等于某值,一般用于求在限制背包体积内的情况求解

状态设置 F(n) 表示此时的背包体积小于等于n,F数组初始化为0即可

例题:423. 采药 - AcWing题库

2.恰好等于某值,一般用于求解最优方案数

F(n)代表体积为n时,转移到此处的方案数个数,初始化对F[0]=1,代表体积为0时有一种转移方案(一个不选也是方案)

 例题:11. 背包问题求方案数 - AcWing题库

3.大于等于某值,一般用于求解满足某个条件的最低消耗,

F(n)代表大于此时背包体积大于等于n,  F(0)代表此时背包体积大于等于0,转移时一般会加上max保证下标大于0,例如

 例题:1020. 潜水员 - AcWing题库

一些背包问题经验

在求解背包问题时,有时可能会遇到空间复杂度过高的情况,因此我们可以选择优化掉背包数组的第一维(物品维),仅保留体积维度,如果遇到难以优化的可以考虑用数组拷贝将上一个状态的数组进行备份,用原数组转移,对备份进行更改例如多重背包三中的:

在进行有依赖的背包问题的求解的时候,我们实际上是先用dfs先去处理儿子背包,然后将儿子背包作为分组背包的一个组,按照以体积为这个组的状态的状态进行转移,值得一提的是,当进行这个转移后,那么意味父亲背包是必须要被选取的,否则转移就是非法的

10. 有依赖的背包问题 - AcWing题库

然后是背包+贪心,在一些题目中,我们要选取的物品的价值会随时间的流逝或者其他一些操作的进行消耗掉,那么这样直接进行dp是困难的,因为我们要处理放入背包的顺序是困难的,或者高时间复杂度的,直接采取贪心也是不准确的,如下题

734. 能量石 - AcWing题库

所以我们可以将这两个方法结合一下,利用贪心来对我们将要选取的物品进行一个排序,我们仅有按照这个排序从先到后进行选取才有可能取得最优解,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python采用Modbus-Tcp的方式读取485电子水尺数据

README.TXT 2023/6/15 V1.0 实现了单个点位数据通信、数据解析、数据存储 2023/6/17 V2.0 实现了多个点位数据通信、数据解析、数据存储 2023/6/19 V2.1 完善log存储,仅保留近3天的log记录,避免不必要的存储;限制log大小,2MB。架…

C#生成类库dll以及调用实例

本文讲解如何用C#语言生成类库并用winform项目进行调用 目录 创建C#类库项目 Winform调用dll 创建C#类库项目 编写代码 using System.Threading;namespace ClassLibrary1 {public class Class1{private Timer myTimer = null;//定义定时器用于触发事件//定义公共的委托和调…

HW5300V3-ISCSI存储运维,看这一篇就够了01——流程图

一、存储使用流程图 二、块存储-配置流程图

【Hippo4j源码的方式安装部署教程】

🚀 线程池管理工具-Hippo4j 🚀 🌲 AI工具、AI绘图、AI专栏 🍀 🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者&#…

Vue3 + Ts + Vite —— 项目封装使用交互式 彩屑纷飞 示例 (亲测可用、复制即展示)

目录 🪂 演示 🛹 目录树 🐔 安装 🤖 global.d.ts 😷 zkConfettiCanvas.vue 🌍 confetti.ts 🎋 confettiIndex.ts 😷 index.vue 🥰😉 谢谢观看 &…

哪款蓝牙耳机通话清楚,几款拥有通话降噪技术的骨传导耳机分享

嘿,你是音乐爱好者吗?还是热衷于锻炼身体?那么你一定不能错过骨传导耳机!这种神奇的耳机通过骨头的振动来传递声音,绝不同于传统的耳道或鼓膜传播方式。你可保持对周围环境的警觉,同时避免对你的听力造成任…

【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块5

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【unity实战】手搓一个网格放置功能,及装修建造种植功能(2d3d通用,附源码)

文章目录 前言开始项目和素材1. 素材来源2. 开始项目包(两种选择一种下载导入即可) 开始1. 修改鼠标指针显示2. 给鼠标对应的平面位置绑定对应的指示器3. 使用Shader Graph创建网格可视化3. 网格的大小缩放和颜色控制4. 优化5. 扩展说明5.1 我们就可以通…

总结:WEB流量劫持

一、背景 在整理WEB鉴权与登陆等技术的时候,会涉及到安全,而鉴权登陆不安全有个很大的可能就是流量被劫持了。 本篇文章主要是想弄明白黑客是怎么劫持的。 二、WEB流量劫持是如何做到的? WEB流量劫持是指黑客将受害者的网页请求重定向到攻…

python appium UI 自动化测试框架讨论

目录 前言: 框架共性总结 Auto_Analysis 权限弹窗识别 前言: Python Appium UI自动化测试框架是一种用于测试移动应用程序的工具,它结合了Python编程语言和Appium测试框架的功能。 框架共性总结 1 自动找设备 连接设备 2 自动启 appium …

Java设计模式之行为型-状态模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基础概念 状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类,状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况&a…

有必要买apple pencil吗?ipad pencil替代品

苹果的电容笔与一般的电容笔有什么不同?事实上,从外观上来看,两者并没有太大的区别。唯一不同的是,苹果电容笔的重量更大,笔尖内部有专门的重力感应器,可以感应到重力压感对线条的影响。因此苹果的这个产品…

MongoDB复制集

文章目录 一、介绍1、存在的意义和作用?2、需要实现啥功能?3、典型案例4、注意事项 二、搭建1、安装MongoDB,配置环境变量2、创建数据目录3、配置文件4、启动 MongoDB 进程5、配置复制集6、验证 三、写策略writeConcern1、w参数2、j参数2.1 介…

《如何使用思维导图进行知识结构的建立和扩展》

I.思维导图作为知识管理工具的重要性 思维导图是一款强大的效率工具,可以帮助有效的管理知识。”一图胜千言“它用图形的方式,将各个主题连接起来。我们可以清晰的了解到各主题之间的关系。 在知识管理中,通过创建一个知识主题的中心&#xf…

PVE虚拟化平台之安装Ubuntu-server系统

PVE虚拟化平台之安装Ubuntu-server系统 一、Ubuntu介绍1.1 Ubuntu简介1.2 Ubuntu版本1.3 ubuntu命名规则 二、上传镜像到PVE存储2.1 检查PVE环境2.2 上传镜像 三、创建虚拟机3.1 设置虚拟机名称3.2 操作系统设置3.3 系统设置3.4 磁盘设置3.5 cpu设置3.6 内存设置3.7 网络设置3.…

libvirt 热迁移流程及参数介绍

01 热迁移基本原理 1.1 热迁移概念 热迁移也叫在线迁移,是指虚拟机在开机状态下,且不影响虚拟机内部业务正常运行的情况下,从一台宿主机迁移到另外一台宿主机上的过程。 1.2 虚拟机数据传输预拷贝和后拷贝 预拷贝(pre-copy): …

3、wampserver中查看各项当前版本及简单配置PHP

wampserver点击左键,即可查看Apache,PHP,MySQL,MariaDB的当前版本 在wampserver的安装目录中,在相应的D:\wamp64\bin\php\php8.0.26 php.ini文件中,short_open_tag On(是否允许使用 PHP代码开…

在新建环境下配置低版本opencv

我这边是要解决 python报错:AttributeError: ‘module’ object has no attribute xfeatures2d’的问题, xfeatures2d在新版本已经被取消,但是需要使用老版本的一个函数 确定opencv与python的版本对应关系 一般来说可以对照这个表 具体来说…

Mac下安装python使用TensorFlow训练自己的模型

程序猿日常 Mac下安装python使用TensorFlow训练自己的模型目标 https://www.tensorflow.org/lite/models/modify/model_maker/image_classification?hlzh-cn 安装Python3.8版本 下载地址双击安装 安装pip curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py pyth…

ZKML:区块链世界的AI+隐私

1. 引言 本文主要参考: 2023年6月drCathieSo.eth 与 Ethereum Malaysia 视频 ZKML: Verifiable & Privacy-Preserving Compute in Blockchain2023年6月drCathieSo.eth 与 PSE 视频 Folding Circom circuits: a ZKML case study - Dr. Cathie So ZKML&#xf…