自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 树上倍增下的 LCA 问题

中深度较大的开始,先使深度较大的缩短到最接近另一个深度的节点(自己 / 最近的祖先),然后一直向上即可。给定一颗有根树,若节点 k 既是节点 x 的祖先,又是节点 y 的祖先,则称 k 是。要解决这个问题,我们还要求出每个节点的深度,可以使用 dfs 解决。的所有公共祖先中,深度最大的称为最近公共祖先,记作。步到达的祖先节点,若此节点不存在则设。因为讲解倍增,所以这里使用。在处理 LCA 时,我们以。LCA,最近公共祖先问题。的第一个中途交汇点。注:本代码用于 AC。

2024-09-14 18:15:47 1011

原创 倍增 and RMQ 问题

倍增,从字面及数学的角度就是 ”成倍增长“ 的意思。这能使线性问题转化为数级处理,优化时间复杂度。不是人话是不是?听不懂是不是?看这里。这是指我们在进行递推时,如果状态空间很大,通常的线性递推无法满足时间与空间复杂度的要求,那么我们可以通过成倍增长的方式,只递推状态空间中在222的整数次幂位置上的值作为代表。因为基本定理:任意整数可以表示成若干个2的次幂项的和 这一性质,使用之前求出的代表值拼成所需的值。”倍增“ 与 ”二进制划分“ 两个思想相互结合,降低了求解很多问题的时间与空间复杂度。

2024-09-14 09:59:03 381

原创 Floyd 算法

核心代码只有三层循环,一行更新,十分简洁,可是这四行代码为什么就能求出任意两点的最短路径呢?f_{k - 1, i, k} + f_{k - 1, k, j} & 经过 k 节点 \。注:每次全排列后,通过最短路到达目前执行边起点,在起点加上本边边权。最短路径的子路径仍然是最短路径,这个定理显而易见,比如一条。但是,既然是动态规划,那么我们就要为问题做一个全新的定义。既然要经过所有边,我们就转化为要经过所有指定边的点。的最短路,反过来,如果说一条最短路必须要经过点。

2024-09-09 18:28:37 774

原创 DP 详解

DP(Dynamic programming,全称动态规划),是一种基于分治,将原问题分解为简单子问题求解复杂问题的方法。动态规划的耗时往往远少于朴素(爆搜)解法。很简单的名字,即为使用空间的代价来确保不会超时。分类讨论就是分类 --> 讨论!分类讨论就是将问题通过不同的结果 / 形式 / 不同点分成几类逐个解决。

2024-09-09 18:27:36 1973

原创 Hexo + redefine主题配置个人博客

我们使用 redefine 主题,这个主题的自定义,方便程度都是很好的,作者也预留了许多插件接口。在 “_config.yml” 文件中把 deploy 上面的 “theme” 改成主题名就好了。然后去:C盘 --> User --> <你的用户> --> “.ssh” 文件夹找到这个文件。输入 “hexo s” 会弹出一个网址,按 “Ctrl + C” 输入新命令。在 “blog” 文件夹中右键选择 “Git Bash Here”。点击右上角 “+” 号,选择 “New repository”。

2024-08-31 11:36:33 689

原创 从零开始学习C++之递推

相对于递归算法,递推算法免除了数据进出栈的过程,不需要函数不断的向边界值靠拢,而直接从边界出发,直到求出函数值。递推算法是一种简单的算法,递推通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。看的处理,递推是线性算法,时间复杂度明显更低。很明显,递推效率更高。

2024-08-28 07:54:03 594

原创 从零开始学习C++之递归

update 2024-8-27 19:30 修复流程图。

2024-08-27 16:34:42 493

原创 从零开始学习C++之枚举与模拟

枚举和模拟是 C++ 中最为基础的算法,也是之后赛时部分分的算法首选。

2024-08-25 17:49:56 330

原创 从零开始学习C++之结构体

之前讲过变量,讲了数据类型(如 int 等),而结构体就相当于创造一个类型。首先,写上一个神圣不可侵犯的(bushi)struct。好了,不开玩笑了。在程序外围定义(一般写在命名空间后面)。struct 名字 {含有的东西。一定一定要有分号!!!例:定义存储坐标的结构体int x, y;结构体定义好了,我们就可以拿结构体创建数据结构了。以上面的坐标为例,定义一个类型为zuobiaozuobiaozuobiao的变量aaazuobiao a;就完事了,神不神奇。。

2024-08-24 16:47:07 720

原创 从零开始学习C++之函数

作者看着 200 行的主函数大模拟返回了 WA,陷入了沉思…咋办?把每个模块包装一下就知道哪里出错了,所以,今天讲函数。(太生硬了吧。。。返回值类型 函数名(变量 * n) {代码 }注:定义函数中的每个变量必须重新写类型,禁止。函数返回值类型和变量一样,如果你不想返回东西可以写void类型。但是,所有函数必须有返回值,即便是void类型也要在函数结束处写上return;。

2024-08-24 16:46:27 274

原创 从零开始学习C++之if判断语句

当你想判断某个条件时,怎么办呢?当当当当(日常发疯),if 语句就派上用场了。

2024-08-24 16:45:46 196

原创 从零开始学习C++之变量与数组

数组就是很多个变量。

2024-08-24 16:43:12 892

原创 从零开始学习C++之循环

本文讲解 C++ 中循环的使用。C++ 中较常用的两种循环为 for 循环和 while 循环。

2024-08-24 16:42:31 255

原创 从零开始学习C++之输入输出

本篇帖子学习 C++ 输入输出。C++ 目前最常用的两种输入输出方法,cin/cout和。

2024-08-24 16:41:42 377

原创 从零开始学习C++之基本代码格式

本文讲解 C++ 基本编码格式。C++ 中代码分为大致三个部分。

2024-08-24 16:40:55 82

原创 C++ 编译器配置

下载完后,打开编译器,进行配置 C++11(不配置的话以后很多功能用不了)。C++ 是一个很有意思和富有逻辑的语言,祝你在学习 C++ 的过程中开心!其中,最适合新手和作者最喜欢的是 Dev-C++,我们来下载编译器。这样就配置好了,准备好开始你的 C++ 之旅了吗?简单了解一下后,我们来下载 C++ 编译器环境。点击后选择语言然后通过你自己的需求选择下载即可。然后进入【连接器】部分,将【产生调试信息】选为。要先学习 C++,我们要先了解 C++ 是什么。首先到下面这个网站下载安装程序。

2024-08-24 16:35:58 207

原创 从零开始学习C++之编译器下载

下载完后,打开编译器,进行配置 C++11(不配置的话以后很多功能用不了)。C++ 是一个很有意思和富有逻辑的语言,祝你在学习 C++ 的过程中开心!其中,最适合新手和作者最喜欢的是 Dev-C++,我们来下载编译器。然后进入【连接器】部分,将【产生调试信息】选为 `Yes`。简单了解一下后,我们来下载 C++ 编译器环境。点击后选择语言然后通过你自己的需求选择下载即可。要先学习 C++,我们要先了解 C++ 是什么。在【语言标准】中选择 `ISO C++11`。- C++ 是 C 语言的扩展升级版。

2024-08-24 16:32:19 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除