dp 总结 1

news/2025/10/3 1:06:37/文章来源:https://www.cnblogs.com/young-tea/p/19124167

dp 总结 1

闲来无事, 把刚学明白的 dp 笔记整理一下.

shout out to professor Adzlpxsn.

基本的, 状态, 转移, 方程

状态

一句话概况即为当前的属性.

比如说, 贝贝现在是 \(30\) 岁, 发了 \(0\) 张专辑, 我们就可以说 \(f_{30}=0\).

这里我们说 \(30\)\(0\) 是不同的信息, 所以一个状态 \(f_{x}=y\) 里包含的信息其实有 \(x\)\(y\).

同样的, \(f_{x,y}=z\) 里包含的信息有 \(3\) 个, 即 \(x\) \(y\) \(z\).

转移

转移, 就是说用 \(f_{x}\) 推算 \(f_{y}\), 或者用 \(f_{x}\)\(f_{y}\) 推算 \(f_{z}\).

举个例子.

贝贝的新专辑 "金手指", 第 \(x\) 首歌是 boombap 还是 trap 取决于第 \(x-1\) 首和第 \(x-2\) 首, 即 \(f_{x}=(f_{x-1}+f_{x-2}) \bmod 2\). 那么我们就说 \(f_{x}\)\(f_{x-1}\)\(f_{x-2}\) 转移而来.

方程

方程就是把转移的过程写成人类能看懂的东西, 比如 "数学语言" "自然语言" "编程语言".

线性 dp

最简单的线性 dp, 就是跳跃问题.

problem:AtCoder-dp_a

考虑状态, 我们让 \(f_{x}\) 表示现在位于 \(stone_{x}\) 时最少跳了多少.

转移就比较容易了, \(f_{x}=\operatorname{std::min}(f_{x-2}+|h_{x-2}-h_{x}|,f_{x-1}+|h_{x-1}-h_{x}|)\).

没什么好讲的, 注意边界条件初始化就好了, 难的题就很难.

背包 dp

这个就好玩了.

01 背包

我个人觉得背包 dp 和线性 dp 大抵是有血缘关系的罢.

problem:AtCoder-dp_d

可以想到, 我们让 \(f_{c}\) 表示在背包容量为 \(c\) 时的最大价值.

于是有转移方程 \(f_{c}=\operatorname{std::max}(f_{c},f_{c-w_{x}}+v_{x})\).

那么这时候我们有一个问题.

如果内层循环从 \(w_{x}\) 枚举到 \(W\), 那么有可能会造成重复选择, 但题意说每个物品只有 \(1\) 个.

于是我们可以调转内层循环的方向, 从 \(W\) 枚举到 \(w_{x}\), 此时每个物品就只会被选一次了.

代码

for(ll	x=1;x<=n;x++)	// 枚举每个物品for(ll	c=W;w[x]<=c;c--)	// 枚举背包大小f[c]=std::max(f[c],f[c-w[x]]+v[x]);	// 转移
std::cout<<f[W]<<"\n";

完全背包

再考虑, 如果每个物品可以选无数次呢?

problem:洛谷-P1616

显然, 只要把内层循环的方向调回去就可以了.

for(ll	x=1;x<=n;x++)	// 枚举每个物品for(ll	c=w[x];c<=W;c++)	// 枚举背包大小f[c]=std::max(f[c],f[c-w[x]]+v[x]);	// 转移
std::cout<<f[W]<<"\n";

多重背包

现在我们说, 每个物品不止有 \(1\) 个, 但也不能无限选, 于是我们说物品 \(x\)\(t_{x}\) 个, 这就是多重背包.

problem:洛谷-1776

如果当成 \(t_{x}\) 个相同物品那么显然会超时, 因为 \(\sum\limits_{x\in[1,n]}t_{x}\ge+\infin\).

于是我们想, 我们学计算机最重要的是什么? 是二进制.

是的, 我们只要拆分成二进制就好了.

std::vector<td>v,w;
for(td	x=1;x<=n;x++){td	vx,wx,tx;std::cin>>vx>>wx>>tx;for(td	f=1;f<=tx;f<<=1){	// 二进制分解v.emplace_back(vx*f);w.emplace_back(wx*f);tx-=f;}	if(tx!=0){	// 最后还剩一点点, 单独做成一个v.emplace_back(vx*tx);w.emplace_back(wx*tx);}
}

然后跑一遍 01 背包就解决了.

分组背包

当每一组物品里只能选 \(1\) 个的时候应该怎么办呢?

problem:洛谷-P1757

这里留给读者思考, 简单放一下代码, 和 01 背包也差不多.

ll	t=0;
std::vector<std::vector<ll>>g(n+1);
for(ll	x=1;x<=n;x++){ll	s;std::cin>>w[x]>>v[x]>>s;t=std::max(t,s);g[s].emplace_back(x);
}
for(ll	s=1;s<=t;s++)for(ll	c=W;0<=c;c--)for(ll	x:g[s])if(w[x]<=c)f[c]=std::max(f[c],f[c-w[x]]+v[x]);
std::cout<<f[W]<<"\n";

时间复杂度总结

像线性 dp 就是 \(O(n*k)\), 其中 \(k\) 为转移复杂度, 比如之后会讲的优化就能搞出 \(k=\log n\).

背包 dp 就比较固定了, 都是 \(O(n*W)\). 特别的, 由于多重背包是二进制搞来的, 所以多重背包的 \(n'=\sum\limits_{x\in[1,n]}\log x\)

下期预告

区间 dp, 状压 dp.

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

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

相关文章

绍兴建设局网站网址查询器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、使用步骤1.安装supervisor-win2.配置supervisord3.配置program4.启动supervisord.exe5.supervisorctl.exe管控 二、后台启动总结 前言 windows使用supervi…

网站做行测题wordpress首页显示内容设置

WinCC Professional V16 支持客户机/服务器架构&#xff0c;但目前只支持单个服务器或单对冗余服务器/多个客户机的模式&#xff0c;还不能支持像WinCC V7.5 SP1中的多个服务器/多个客户机的分布式架构。 组态步骤如下&#xff1a; 1. 在项目中分别添加服务器站和客户机站&…

盛盾科技网站建设简洁高端网页

很清爽的 abstract 给出链接 前面的背景意义 其实 是通用的 这里替大家 整理一吓吓 1 缺陷分类在钢铁表面缺陷检测中 有 意义。 2 大多数缺陷分类模型都是基于完全监督的学习&#xff0c; 这需要大量带有图像标签的训练数据。 在工业场景中收集有缺陷的图像是非常困难…

US$98 Battery for 2M2 Magic Tank Automatic Car Key Cutting Machine

Battery for 2M2 Magic Tank Automatic Car Key Cutting MachineThis battery is for you to put in 2M2 Cutting Machine and take out for working. It can cut about 20 keys when you charge it completely.Packag…

南宁市建设工程质量安全协会网站如何安装wordpress图解

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括招聘信息管理系统的网络应用&#xff0c;在外国招聘信息管理系统已经是很普遍的方式&#xff0c;不过国内的线上管理系统可能还处于起步阶段。招聘信息管理系统具有招聘信息管…

US$44 Ford Soft Rubber FO21-8 Quick Opening Tool

Ford Soft Rubber FO21-8 Quick Opening Tool Package includes:1pc x Ford Soft Rubber FO21-8 Quick Opening Tool Pictures of Ford Soft Rubber FO21-8 Quick Opening ToolFord Soft Rubber FO21-8 Quick Opening …

为什么做网站的会弄友情链接官方网站建设 磐石网络多少费用

《大学计算机基础》试题题库及答案一、单选题练习 1&#xff0e;完整的计算机系统由( C )组成。A&#xff0e;运算器、控制器、存储器、输入设备和输出设备B&#xff0e;主机和外部设备C&#xff0e;硬件系统和软件系统D&#xff0e;主机箱、显示器、键盘、鼠标、打印机2&…

冷水江网站定制自媒体网站建设

abstract class 抽象类定义规则如下: (1) 抽象类和抽象方法都必须用 abstract 关键字来修饰。 (2) 抽象类不能被直接实例化&#xff0c;也就是不能用new关键字去产生对象。 (3) 抽象方法只需声明&#xff0c;而不需实现。 (4) 含有抽象方法的类必须被声明为抽象类&#xff0c…

杭州公司官方网站制作济南营销网站制作

一、简介 RESTful设计的背景源于Roy Fielding博士在他2000年的博士论文中提出的REST&#xff08;Representational State Transfer&#xff09;架构风格。REST旨在构建可伸缩、可维护的网络应用&#xff0c;强调资源的统一标识、无状态通信和统一接口。基于HTTP协议&#xff0…

上海市建设市场管理信息平台网站中天建设集团有限公司招聘

1、写一个两个按钮 2、给两个按钮加动画的样式 3、写方法控制两个按钮的显示 <button class"more-button" bindtap"toggleMoreOptions">更多</button><!-- 按钮列表容器&#xff0c;初始状态设置为隐藏 --> <view class"option…

网站建设人员职责分布秦皇岛飞彪建设

Wii模拟器Dolphin Mac是款适合Mac电脑中的游戏玩家们使用的模拟器工具。Wii模拟器Dolphin Mac官方版支持直接运行游戏镜像文件&#xff0c;玩家可以将游戏ISO拷贝到某一个文件夹中统一进行管理。Wii模拟器Dolphin Mac除了键盘和鼠标外&#xff0c;还支持配合原版的Wii遥控器操作…

phpcms 手机网站后台开县网站建设

一、super关键字的使用1. 为什么需要super&#xff1f;举例1&#xff1a;子类继承父类以后&#xff0c;对父类的方法进行了重写&#xff0c;那么在子类中&#xff0c;是否还可以对父类中被重写的方法进行调用&#xff1f; 可以&#xff01;举例2&#xff1a;子类继承父类以后&a…

上栗网站建设做资源下载网站违法吗

早晨问候&#xff1a; 亲爱的朋友们&#xff0c;大家早上好&#xff01;今天是2024年11月28日&#xff0c;第48周的第四天&#xff0c;也是十一月的第二十八天&#xff0c;农历甲辰[龙]年十月廿四。在这个即将步入月末、阳光依旧明媚的清晨&#xff0c;愿第一缕阳光轻轻洒落在…

html网站开发开题报告范文wordpress 图片处理

activated(){this.cheange(0) },用于刷新uni页面的操作 返回上一个页面

宋庄网站建设什么是域名解析错误

一、大数据时代还需要数据治理吗&#xff1f; 数据平台发展过程中随处可见的数据问题 大数据不是凭空而来&#xff0c;1981年第一个数据仓库诞生&#xff0c;到现在已经有了近40年的历史&#xff0c;相对数据仓库来说我还是个年轻人。而国内企业数据平台的建设大概从90年代末…

网站开发工程师的工作描述路由器做php网站

来源 | 沉默王二责编 | Carol封图 | CSDN 付费下载自视觉中国学习真的是一件令人开心的事情&#xff0c;上次分享了Redis 入门的文章后&#xff0c;收到了很多小伙伴的鼓励&#xff0c;比如说&#xff1a;“哎呀&#xff0c;不错呀&#xff0c;通俗易懂&#xff0c;十分钟真的入…

教学网站开发应用方案郑州公司网站制作

来源&#xff1a;光明日报 作者&#xff1a;袁于飞2017年12月3日&#xff0c;第四届世界互联网大会世界互联网领先科技成果发布活动在浙江乌镇举行&#xff0c;中国卫星导航系统管理办公室主任冉承其介绍北斗卫星导航系统。新华社记者 孟鼎博摄3月30日&#xff0c;我国在西昌卫…

公司域名注册网站哪个好域名解析系统的英文缩写

最近在工作中&#xff0c;需要让运行在容器中的单页面应用程序能够访问外部的RESTful API。这个需求看起来并不困难&#xff0c;不过实现起来还是有些曲折的。在此&#xff0c;我就将这部分内容总结一下。在入正题之前&#xff0c;有个一问题&#xff0c;就是为什么要将单页面应…

常州网站建设要多少钱湖南做旅游网站哪家最好

随着物联网、大数据、人工智能等技术的快速发展&#xff0c;边缘计算已成为当前信息技术领域的一个热门话题。在物联网领域&#xff0c;边缘计算被广泛应用于智慧交通、智能安防、工业等多个领域。因此&#xff0c;基于边缘计算技术的工业主板设计方案也受到越来越多人的关注。…