![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法树之数据结构
九羽-
日有所进,月有所变,终有所成。
展开
-
( 数据结构专题 )【 dfs序 】
( 数据结构专题 )【 dfs序 】 Dfs序是一棵树从根节点出发,dfs遍历时依次经过的节点序列。 作用:对于只对某个节点的 子树 进行操作时,可以将树简化为一维序列。 上面这个树的遍历顺序是:1 4 9 8 13 12 3 7 6 11 10 14 2 5 性质:对于一棵树的dfs序而言,同一棵子树所对应的点一定是dfs序中连续的一段。 这个性质非常重要,在利用dfs序来解题的过程中,这个不可缺少! 证明:在dfs遍历时,当进入一个节点之后,dfs会先把当前的节点的所有子节点...翻译 2020-08-04 11:13:58 · 740 阅读 · 0 评论 -
( 数据结构专题 )【 树的直径 】
( 数据结构专题 )【 树的直径 】 定义:我们将一棵树T = ( V,E )的直径定义为max( u,v )( u,v ∈ V ),也就是说,树中所有最短路径距离的最大值即为树的直径。 怎么求树的直径呢? 1、两次bfs(或者dfs) 方法:先从任意一点P出发,找离它最远的点Q,再从点Q出发,找离它最远的点W,W到Q的距离就是是的直径。( 记住就好了 ) 例题:http:...原创 2020-04-07 14:58:11 · 636 阅读 · 0 评论 -
( 数据结构专题 )【 倍增LCA 】
( 数据结构专题 )【 倍增LCA 】 推荐视频:https://www.bilibili.com/video/av95465637?from=search&seid=12848805369174984057 指的就是对于一棵有根树,若结点z既是x的祖先,也是y的祖先(不要告诉我你不知道什么是祖先),那么z就是结点x和y的最近公共祖先。 定义到此。 那么怎么求LCA? 对于朴...转载 2020-03-18 16:46:15 · 180 阅读 · 0 评论 -
( 数据结构专题 )【 dsu on tree】
( 数据结构专题 )【 dsu on tree】 推荐视频:https://www.bilibili.com/video/av71124048?p=2 题目链接:https://codeforces.ml/contest/600/problem/E #include <bits/stdc++.h> using namespace std; const int...翻译 2020-02-19 20:39:07 · 375 阅读 · 0 评论 -
( 数据结构专题 )【 树链剖分】
( 数据结构专题 )【 树链剖分】 推荐视频:https://www.bilibili.com/video/av62060264?from=search&seid=11398715168050880992 对于操作3,4, 我们可以用dfs序来做,这样我们发现每一个节点的子树节点全部是连续的。比如B节点的子树BDGHI在序列中是连续的,区间范围是 L = B点的时间戳, R...翻译 2020-02-11 22:15:42 · 142 阅读 · 0 评论 -
( 数据结构专题 )【 树状数组 】
( 数据结构专题 )【 树状数组 】 先学一个,之后用到再学。 单点修改,区间求和 #include <bits/stdc++.h> #define l(x) (x&(-x)) using namespace std; int tree[1005]; int n = 10; void update( int i, int date ) { for ( ...原创 2020-02-01 21:37:20 · 117 阅读 · 0 评论 -
A Simple Problem with Integers ( 线段树 lazy 模板 )
A Simple Problem with Integers ( 线段树 lazy 模板 ) You haveNintegers,A1,A2, ... ,AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number...原创 2019-07-28 15:21:38 · 113 阅读 · 0 评论 -
( 数据结构专题 )【 主席树 】
( 数据结构专题 )【 主席树 】 推荐阅读:https://blog.csdn.net/bestFy/article/details/78650360 推荐阅读:https://blog.csdn.net/qq_39565901/article/details/81782739 推荐阅读:https://blog.csdn.net/chenxiaoran666/article/detai...原创 2019-12-02 21:43:00 · 142 阅读 · 0 评论 -
( 数据结构专题 )【 权值线段树 】
( 数据结构专题 )【 权值线段树 】 权值线段树 学习权值线段树,首先要了解线段树是什么。如果不会的可以先学习一下。 是什么 权值线段树,顾名思义是一棵线段树。 但它和普通线段树不同: 线段树,每个节点用来维护一段区间的最大值或总和等。 权值线段树,相当于一个桶,每个节点用来表示一个区间的数出现的次数。 为什么要用它 我们可以用它来维护一段区间的数出现的次数,从它的定义上来看,它...翻译 2019-11-30 21:18:18 · 484 阅读 · 0 评论 -
( 数据结构专题 )【 ST表 】
( 数据结构专题 )【 ST表 】 ST表的功能很简单 它是解决RMQ问题(区间最值问题)的一种强有力的工具 它可以做到????(????????????????????) 预处理,????(1)查询最值 ST表是利用的是倍增的思想 拿最大值来说 我们用????????????[????][????] 表示,从????位置开始的2????个数中的最大值,例如????????????[????][1]表示的是????位置和????+1 位置中两个数的最大值 那么转移的时候我们可以把当前区翻译 2019-11-26 20:08:32 · 178 阅读 · 0 评论 -
( 数据结构专题 )【 zkw线段树 】
( 数据结构专题 )【 zkw线段树 】 推荐阅读: 大佬的ppt https://wenku.baidu.com/view/0c1bbba40029bd64783e2cca.html 良心!良心!十分良心的zkw线段树(更新中) https://blog.csdn.net/mk703/article/details/54729014 zkw线段树详解 https://blog.c...原创 2019-11-08 21:41:23 · 205 阅读 · 0 评论 -
( 数据结构专题 )【 并查集&带权并查集 】
( 数据结构专题 )【 并查集 】 一般的并查集 主要记录节点之间的链接关系,而没有其他的具体的信息,仅仅代表某个节点与其父节点之间存在联系,它多用来判断图的连通性,如下图所示,这是一个并查集,其中箭头表示父子关系,可以看到这些边没有记录其他的任何信息。 而有的时候在这些边中添加一些额外的信息可以更好的处理需要解决的问题,在每条边中记录额外的信息的并查集就是带权并查集。 不过在此...原创 2019-11-06 09:53:36 · 206 阅读 · 0 评论 -
( 数据结构专题 )【 单调栈&单调队列 】
( 数据结构专题 )【 单调栈&单调队列 】 单调队列是什么呢?可以直接从问题开始来展开。Poj 2823 给定一个数列,从左至右输出每个长度为m的数列段内的最小数和最大数。 数列长度:????<=106,????<=???? 解法① 很直观的一种解法,那就是从数列的开头,将窗放上去,然后找到这最开始的k个数的最大值,然后窗最后移一个单元,继续找到k个数中的最大值。 这种方法每...翻译 2019-11-01 16:56:24 · 1536 阅读 · 1 评论