
数据结构
文章平均质量分 87
1
04号憨憨
这个作者很懒,什么都没留下…
展开
-
数据结构专题——动态树
顾名思义,动态树是动态的,动态树维护了若干无序的有根树(实际上是无根的,操作过程中拓扑序不变)组成的森林.动态树,支持树上的节点到根节点的操作(树链剖分能够维护的信息),同时动态树能够高效的实现换根、加减边、森林中树的合并分裂(这是树剖无法高效实现的),这里介绍的均为 LCT(Link−Cut Trees)LCT(Link-Cut\ Trees)LCT(Link−Cut Trees).树链剖分一般指轻重链剖分,通过把树划分不同的链,然后在线段树上维护树上的信息;这里的 LCTLCTLCT 是虚实链剖分,每个原创 2022-06-09 15:31:27 · 1926 阅读 · 0 评论 -
数据结构专题——Treap
TreapTreapTreap 叫树堆,是一种平衡二叉树,它为每一个节点加上了一个随机数,使其满足堆的性质(默认大根堆),而节点的值又满足二叉搜索树的性质,TreapTreapTreap 能够实现随机平衡,期望的时间复杂度是 O(logN)O(logN)O(logN),相对于其他类型的平衡二叉树:TreapTreapTreap 优点:TreapTreapTreap 缺点:本文介绍 TreapTreapTreap 的几种基本操作:当前节点时,用左右子树进行更新2. 旋转操作以右旋为例子:3.插入函数原创 2022-06-05 14:25:44 · 357 阅读 · 0 评论 -
数据结构专题——单调队列
单调队列是什么?单调队列用途:序列长为 nnn,求每个 mmm 长的连续子序列的区间最值,常用于滑窗最值问题,也常用于 dpdpdp 优化单调队列的核心一个神奇的单调队列的比喻:比你小的人还比起强,你就可以被淘汰了 (来自知乎某dalao)单调队列不一定要严格单调,就那上面的比喻,当你和比你小的人旗鼓相当时,你不一定被淘汰维护最大值,则维护单减队列,因为队头总是最值队列中存的是数组下标!!!!!!单调队列八股文模板,熟练掌握!!!!!!!(我们这里就不要求严格了,以最大值为例)设原创 2022-06-04 14:09:54 · 241 阅读 · 0 评论 -
数据结构专题——虚树
虚树(virtual tree)的概念虚树 是将一个树的点集的某一个子集,以及该子集中点的 LCALCALCA 的集合,一起所重构出来的一棵树虚树的用途在树型dp中,有时候没必要对整颗树进行dp,只用对某个子集构成的虚树进行dp,大大降低了时空复杂度例题:P2495 [SDOI2011] 消耗战[SDOI2011] 消耗战题目描述在一场战争中,战场由 nnn 个岛屿和 n−1n-1n−1 个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为 111 的岛屿,原创 2022-05-27 19:20:22 · 2692 阅读 · 0 评论 -
数据结构专题——稀疏表
稀疏表的概念稀疏表,简称 STSTST,算法的思想为倍增、动态规划,支持在线 RMQRMQRMQ,不支持在线修改时间复杂度:O(NlogN)O(NlogN)O(NlogN)建表,O(1)O(1)O(1)查询稀疏表的实现用F[i][j]F[i][j]F[i][j]表示 iii ~ i+2j−1i+2^j-1i+2j−1 范围内的区间最值,区间的长度为 2j2^j2j如何构建 STSTST 呢?以最大值为例子,状态转移方程如下,注意初始化 F[i][0]F[i][0]F[i][0]:F[i][j]=原创 2022-05-22 16:53:26 · 629 阅读 · 0 评论 -
算法基础——莫队基础
知识点1: (普通)莫队的概念(普通)莫队算法是一种优化的暴力算法,用于解决区间查询的离线算法,基于分块的思想,时间复杂度 O(mn+nn)O(m\sqrt n+n\sqrt n)O(mn+nn)什么时候使用莫队?当对于一个查询 [l,r][l,r][l,r],能够在 O(1)O(1)O(1) 的时间内把 [l,r][l,r][l,r] 的答案转移到相邻的区间 [l,r−1][l,r-1][l,r−1],[l,r+1][l,r+1][l,r+1] …此时可以考虑使用(普通)莫队算法莫队的算法核心原创 2022-04-11 01:25:10 · 819 阅读 · 0 评论 -
算法基础——分块
分块的概念分块算法用于是区间信息维护与查询的算法分块的思想是把数据分成若干块,为了时间复杂度的均摊,块的大小通常设置为 n\sqrt nn,以块为单位维护区间的值对于单点更新,时间复杂度 O(1)O(1)O(1)区间更新,若区间不跨越块,直接暴力处理,时间复杂度 O(n)O(\sqrt n)O(n),若跨越块,则不能凑成一个整块的暴力处理,整块的直接更新,时间复杂度 O(n)O(\sqrt n)O(n)区间查询同理分块的特点:分块算法比较简洁,能够维护一些树状数组和线段树无法维护的值,但原创 2022-04-09 18:58:14 · 1040 阅读 · 0 评论