![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 70
流苏贺风
这个作者很懒,什么都没留下…
展开
-
树上启发式合并,静态链分治(DSU)
树上启发式合并,静态链分治(DSU)一,讲解二,使用T1题目友好链接题解codeT2题目友好链接题解codeT3题目友好链接题解codeT4题目友好链接题解codeT5题目友好链接题解code一,讲解https://www.acwing.com/solution/content/59241/遍历每一个节点递归解决所有的轻儿子,同时消除递归产生的影响递归重儿子,不消除递归的影响统计所有轻儿子对答案的影响更新该节点的答案删除所有轻儿子对答案的影响二,使用T1题目一片森林,每次询问一原创 2022-04-06 22:22:10 · 776 阅读 · 0 评论 -
树套树思想
树套树思想序言一,线段树套 multiset二,线段树套平衡树序言线段树是一种基于把查询区间划分为 log(n)log(n)log(n)个互相没有交集的小区间,并借助区间可加性维护的,所以只要把区间划分完成就可以独立查询修改注意变量划分,避免重名一,线段树套 multiset注意是多重集注意是lower还是upper区间插入一个哨兵避免特判建树时区间所有的点位置都要进入SET线段树开4倍,多留余量1 pos x,将 pospospos 位置的数修改为 xxx。2 l r原创 2022-04-04 11:51:32 · 355 阅读 · 0 评论 -
CDQ分治_三维偏序
CDQ分治_三维偏序一,偏序性质二,二维偏序三,三维偏序四,实际使用一,偏序性质二,二维偏序三,三维偏序第一维:使用三关键次排序自然保证第二维:使用双指针维护位置(排序后数组单调)第三维:动态添加,使用轻量化动态前缀和数据结构:树状数组注意:1,重复元素需要记次数,最后单独计算贡献,否则CDQ会出错2,归并排序和答案统计使用的是去重之后的数组3,重新定义小于号注意最后一步写法,不要出现没有返回值的情况4,注意重复统计的方法bool operator < (const nod原创 2022-04-02 20:49:04 · 560 阅读 · 0 评论 -
LCT 动态树(实链剖分)
动态树(LCT)原创 2022-03-15 17:39:05 · 1086 阅读 · 0 评论 -
数列分块和块状链表
数列分块和块状链表核心思路:大段维护,局部朴素原理:1,把数列分为n\sqrt{n}n段每一段长度不超过n\sqrt{n}n的数列段2,维护延时标记:增量或者其余区间信息约定(具有主观色彩):数列块数由1开始,...原创 2022-03-01 18:28:09 · 62 阅读 · 0 评论 -
左偏树与森林
左偏树与森林一,理论二,实现听说pb—ds很不错,喜欢算法库的可爱可以去转去看WC 2015 了一,理论高效合并优先队列外节点:只有一个儿子或没有儿子的节点,即左右儿子至少有一个为空节点的节点距离:一个节点到离它最近的外节点的距离,即两节点之间路径的权值和。特别地,外节点的距离为0,空节点的距离为−1左偏树:一种满足左偏性质的堆有序二叉树(左偏树的左偏性质体现在左儿子的距离大于右儿子的距离)左偏树的距离:我们将一棵左偏树根节点的距离作为该树的距离满足堆的基本性质原创 2022-02-03 18:10:56 · 448 阅读 · 0 评论 -
set与multiset的妙用
一,概述set,不可重结合(保序)底层实现: 红黑树插入复杂度:O(logN)O(log N)O(logN)优势:在只须前驱后继时和大量平衡树开设需求时multiset 可重集(保序)二,例题P5250 【深基17.例5】木材仓库一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作:进货,格式1 Length:在仓库中放入一根长度为 Length(不超过原创 2021-12-28 20:01:48 · 541 阅读 · 0 评论 -
FHQ_Treap 基础
FHQ_Treap 基础一, 原理介绍二,关键操作1,节点创建:create2,节点复制(不仅仅是权值):copy3,上传:up4,下传:down5,分裂子树:split6,合并子树:mergeAGOH B站讲解,三分钟入门,1天熟练,2天持久化可持久化讲解博客: KevinYu随机化的修改与玄学骗分https://www.luogu.com.cn/blog/xing4c/post-fei-xuan-ping-heng-shu-fhq-treap一, 原理介绍免旋,保存原结构的基础上进行增删,原创 2021-12-21 17:24:43 · 409 阅读 · 0 评论 -
Spaly基础和应用
splay 基础和应用一,原理简述二,注意点步骤拆析1,splay基本元2,up 向上更新操作3,spin/rotain(左右旋兼容)4,spaly(关键!!!)5, plug (插入)一,原理简述保证每一次操作复杂度 O(log n)O(log~n)O(log n) 的做法是把当前操作对象旋转到树根BST 性质(拓展一下就是顺序的特殊性可以维护)BST是这样的一棵二叉树:对于任意节点,有:它的值不小于它左子树任意节点的值它的值不大于它右子树任意节点的值这个性质就是原创 2021-12-11 21:40:19 · 804 阅读 · 0 评论 -
数列分块基础
数列分块基础一,基础思想一,基础思想1,把数列分成不超过 N\sqrt{N}N 个段,每一段的左端点 (i−1)∗N+1(i-1)* \sqrt{N} +1(i−1)∗N+1 ,右端点为 min(i∗N,N)min(i * \sqrt{N},N)min(i∗N,N)2,预处理出 v[]v[]v[] 数组,块内延迟,块外暴力: “大段维护,局部朴素"3,操作需求:快速取得某个点的块编号和左端点,右端点位置...原创 2021-12-09 17:51:47 · 97 阅读 · 0 评论 -
基础莫队算法
基础莫队一,概述二,复杂度i,每块内一,概述1,暴力的改进: 排序离线,query2,原理:右端点递增,左端点双指针出一块,配图二,复杂度i,每块内原创 2021-12-09 17:08:11 · 75 阅读 · 0 评论 -
权值线段树,动态开合
权值线段树,动态开合一,情景导入一,情景导入对(同一点)多种物品同时进行差分或者求和计数,考虑到每个点都开完整的统计桶数组太浪费,所以每个节点维护动态开点的权线原创 2021-12-06 19:57:30 · 153 阅读 · 0 评论 -
树状数组入门和应用
树状数组入门和应用一、原理1.lowbit2.树状树组操作1 lowbit操作2 单点修改操作操作3 取区间和的操作一、原理源:信息可减性ex:当已知更大区间和与要求的信息所在区间共同构成全集的信息时可以推出要求的信息1.lowbit定义:二进制表示的数位里第一位不是0的1表示的数求法 lowbit[i]=i & -i;涉及二进制的博客正在施工用处:根据二进制的定义,这些2的n次方的数字可以达到设计并确定树状数组的长度并且对所有的10进制整数达到普适性2.树状树组copy大佬原创 2021-10-18 19:14:20 · 102 阅读 · 0 评论 -
基础数据结构及其应用
基础数据结构及其应用一,栈1,普通栈2,单调栈3,对顶栈一,队列1,普通队列2,单调队列一,栈1,普通栈2,单调栈3,对顶栈一,队列1,普通队列2,单调队列https://www.luogu.com.cn/problem/P2827......原创 2021-10-18 19:13:49 · 112 阅读 · 0 评论 -
线段树入门和应用
线段树基础线段树一,原理2,建树操作2,pushup(由子节点更新父节点)11,区间最值22,区间最大子段和基础线段树一,原理2,建树操作目的:把一个区间转换成一个可维护的树结构struct segmenttree{ int l,r,v; int sum,add; (还可以添加好多好多需要的数据)}tr[M*4];void build(int p,int l,int r){ tr[p]={l,r}; if(l==r)return ;(这里你可以初始化一些东西) int m原创 2021-09-11 21:25:14 · 103 阅读 · 0 评论 -
并查集基础和进阶
并查集并查集基础一, 找祖先(代表元):二, 合并集合:并查集进阶1,求合并后的集合个数2,反集(种类并查集)2,边权并查集(拓展域)并查集基础对象: 以数为元素的集合特性:同一集合中具有不重复性,对于任意元素,他所在的集合是确定性的操作: 1,查询某元素所在的集合;2,合并某些集合中的元素手段:注意到每个元素只能属于一个集合,那么为每一个集合选取一个代表元W ( x )(能代表一个集合的元素)1,判断在不在一个集合,只需知道代表元相同与否2,合并两个集合,只需将两个集合的每个元素的代表元修改原创 2021-09-11 21:08:41 · 533 阅读 · 2 评论 -
RMQ和ST表
高级的数据结构(长期更新)前言一、树状数组1.lowbit2.树状树组操作1 lowbit操作2 单点修改操作总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、树状数组源:信息可减性ex:当已知更大区间和与要求的信息所在区间共同构成全集的信息时可以推出要求的信息1.lowbit定义:二进制表示的数位里第一位不是0的..原创 2021-06-12 20:51:56 · 189 阅读 · 0 评论