随笔分类 - DS-study
DS-study
摘要:###吉司机线段树 线段树3 https://www.luogu.com.cn/problem/P6242 ####Q1.对于所有的i∈[l,r],将Ai加上 k(k 可以为负数) 对于k的值,我们分类讨论,讨论其对区间最大值的影响 1)k==0 无影响 2)k<0 正常加上即可 3)k>0,只有这
阅读全文
摘要:极好的blog https://www.cnblogs.com/WAMonster/p/10118934.html ###概要 概述一下,就是区间上的双指针+分块+排序优化的优美暴力 一般情况下块长取 复杂度 ###块长选取 我们令数列长度为 ,
阅读全文
摘要:结构体封装的trie 之前TLE了很多次 原因是因为cnt用完没清空... #include <bits/stdc++.h> #define il inline #define re register using namespace std; const int N=3e6+10; il int r
阅读全文
摘要:###ST表 这个DS自从CSP-2022结束之后,每个星期都要打一次 还是记录一下比较好,写写自己的理解 作用:静态维护区间最大最小值 预处理:O(nlogn) 查询:O(1) 思想就是利用倍增预处理记录端点l开始往后2的幂倍之后对应幂的长度的区间最大值 令2的幂为k,对应区间[l,r]都可以从[
阅读全文
摘要:####可持久化线段树 可持久化数据结构总是可以保留每一个历史版本,并且支持操作的不可变特性 部分可持久化 所有版本都可以访问,但是只有最新版本可以修改 完全可持久化 所有版本都既可以访问又可以修改,支持将两个历史版本合并 主席树&可持久化线段树 主席树全称:可持久化权值线段树 函数式线段树:是指使
阅读全文
摘要:##平衡树 平衡:左右子树高度差的绝对值<=1称为平衡 用途: 1、插入一个数x 2、删除一个数x 3、查询一个数x(其排名,其前驱后继) 4、查询排名为k的数x 5、快速合并与分裂 6、维护区间修改、查询、翻转 7、维护其它信息 0)AVL:最普通的平衡树,维护[高度],只要出现了不平衡的条件,就
阅读全文
摘要:###树状数组: 利用数组下标的二进制关系,构造一种类似于树形的结构,有点像一个变成树形的前缀和 可以实现单点修改、区间修改、区间查询等操作 2的整数n次幂的位置就是表示该位置及之前所有数之和 在2的整数n次幂上加上小于等于2的n次幂的2的k次幂的数,也表示2^n +1 ··· 2^n + 2^k区
阅读全文
摘要:###分块算法: 一个块 [ ] 长度为N 分成 [ A ][ B ][ C ][ D ][ E ] 分成 根号N 个区间 其中有时会多出来一块长度非 根号N 的区间 E ,这一块比较特殊,不完整 令均匀长度的块长度为len,共有完整的块c个 1.对于区间查询[l,r] 1)如果l,r在同一个区块内
阅读全文
摘要:##可并堆之左偏树 (适用统计问题、最值问题、模拟问题和贪心问题) 一句话:符合堆、二叉树性质,且可实现快速合并 外节点:左儿子或右儿子为空的节点 (默认小根堆) dist: 一个外结点的dist为1 空节点的dist为0 非外结点的dist为到达其子树的[最近的外结点]的距离+1 左偏树[左偏]:
阅读全文