
数据结构
文章平均质量分 94
难写,较好识别,得心平气和
PI_PJW
No succeeding, no giving up.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
李超树(无脑秒斜率)
文章目录一.What?二.How?1.插入(update)2.查询(query)三.板题( [\[JSOI2008\]Blue Mary开公司](https://www.luogu.com.cn/problem/P4254))五.高端操作1.动态开点2.合并(merge)四.ZZH的旅行Thanks!一.What?李超树个人认为用处有点大,因为会了李超树,就再也不怕斜率优化做不出来了,你但凡能够推出一个一次函数的式子那铁定用李超树。所以撒子是李超树呀?就是变异的线段树,即在某个区间内维护区间中点值最大的原创 2020-12-03 21:48:14 · 1297 阅读 · 0 评论 -
单调队列优化DP动态规划(1)
目录一.前言二.例题1:单调队列本身的灵活应用——测量温度1.题目题目描述输入输出输入样例输出样例2.思路三.例题2:单调队列优化DP:猴子1.题目题目描述输入输出输入样例 输出样例2.思路 四.总结一.前言学好了单调队列不仅可以单独使用,他还可以有更多的广泛用途。这里我主要讲其对动态规划的优化,较简单。二.例题...原创 2018-12-23 11:51:37 · 732 阅读 · 0 评论 -
单调队列基础
目录前言题目引入:滑动窗口题目描述输入输出样例输入样例输出题解总结前言单调队列和单调栈是有区别的,相对而言,单调栈要简单一些,因为它只用控制队尾元素,而队列既有head又有tail,但是单调队列在实际应用中更广泛一些,对后面的单调队列优化DP有很大帮助。在这里我就只讲数组模拟队列,什么deque我先不说。(deque是双向队列)题目引入:滑动窗口...原创 2018-12-19 16:07:46 · 431 阅读 · 0 评论 -
单调栈基础
目录一.引入二.例题1.题目:最大矩形面积题目描述输入输出输入样例输出样例 2.题解思路 代码三.例题升级版1.题目:矩形牛棚题目描述输入输出样例输入样例输出 2.思路四.总结一.引入单调栈是个什么东西?就是只单调上升、下降、不上升、不下降的序列。既可以用数组模拟,也可以就用STL的栈。时间复杂度是O(n)...原创 2018-12-16 12:15:41 · 588 阅读 · 0 评论 -
口胡平衡树splay
文章目录一.什么是平衡树二.分步讲解1.定义变量4.预备函数3.旋转操作3.splay4.插入5.查询x的排名6.查询排名x的数7.前驱(比x小的最大的)8.后继(比x大的最小的)9.删除三.模板谢谢!一.什么是平衡树就这样给你说,平衡树就是一个节点的左儿子严格小于它,右儿子严格大于它的一棵二叉树,整个树的叶子结点的深度几乎一致。二.分步讲解1.定义变量key[i]:排序的关键字cnt...原创 2020-01-21 18:39:53 · 608 阅读 · 0 评论 -
牛半仙的妹子Tree——2020牛客NOIP赛前集训营-提高组(第三场)
文章目录一.题目二.Solution三.CodeThanks!一.题目题目描述牛半仙的妹子的座位呈一个树状结构,由nn_{}n个点和n−1n-1_{}n−1条边组成,11_{}1号结点为根。当牛半仙的一个妹子无视 牛半仙后,一个单位时间后周围的妹子也会无视牛半仙。有些时候牛半仙为了吸引妹子们的注意,会开启鬼畜模式,这时所有妹子无视牛半仙的状态都会消失,恢复正常,并且这之后的状态不会被之前影响。牛半仙想知道某个妹子是否无视了他,于是他找到了你,请你帮帮他。数据范围n,m≤105,1≤op原创 2020-10-23 20:29:36 · 392 阅读 · 0 评论 -
浅析主席树
由于作者太蒟了,不会动态主席树,所以这里就只讲静态主席树。其实会了平衡树什么问题都没了。文章目录一.定义二.思想一.定义可持久化线段树它就牛逼在一个别名:主席树(xjp)。什么叫可持久化呢?我也无法解释。其实主席树就是用来解决区间第k小的值的这类问题。整个算法相当于用空间换时间(只要有空间,啥都好说)。二.思想这里有道模板题:Luogu P3834 【模板】可持久化线段树 1(主席树...原创 2020-01-09 14:00:31 · 418 阅读 · 0 评论 -
CF786B Legacy 线段树优化Dijkstra
文章目录一.题目二.题解三.CodeThanks !一.题目传送门翻译:二.题解如果这道题目没有后面两个操作,那么就是一个Dijkstra跑过,但是当加上后两个操作,如果vvv向每个区间内的点连一条边将会连n2n^2n2条边,存不下也跑不过。这时就得使用线段树来优化Dijkstra。我们不如直接将点vvv连到区间l−rl-rl−r上或将区间l−rl-rl−r连到点vvv上,具体操作下面我将线段树的打法解释一下:首先要建两颗线段树treein[Index],treeout[Index]tre原创 2020-08-24 10:26:56 · 414 阅读 · 0 评论 -
树链剖分浅析——(板子+[NOI2015]软件包管理器)
文章目录一.先知其用二.预备知识1.预备概念2.变量声明三.操作过程1.预处理1.1.dfs11.2.dfs22.开始操作2.1.操作1:求节点x到节点y的路径上所有点权的总和2.2.操作2:修改节点x到节点y的路径上所有点权3.线段树温馨提醒四.实战演练1.洛谷板题1.1.题目1.2.题解1.3.Code2.[NOI2015]软件包管理器2.1.题目:[传送门](https://www.luog...原创 2019-09-21 22:48:28 · 615 阅读 · 0 评论 -
8.16.NOIP模拟赛(线段树求连续区间长度 | 前缀和单调栈)——2019暑假篇
这次又考栽了一.题目1.Hotel1.1.题目描述传送门1.2.题解这道题目就是裸的线段树求最长连续区间长度,修改+查询的题目。对于每个区间要定义:最长连续区间,左起最长连续区间,右起最长连续区间,懒标记,左右端点下面一个一个的来说细节:1.修改找到被要修改区间覆盖的区间,修改它,修改时要注意如何更新区间的状态://修改区间void Insert (...原创 2019-08-16 18:59:01 · 258 阅读 · 0 评论 -
线段树(基础)Segment Tree
目录一.What is Segment Tree?1.概念2.实践(1)建树(2)修改区间(3)区间查询二.How can we use it?例:影子的宽度(1)题目(2)思路(3)思维图(4)代码三.sum up(总结)四.附:关于整数的简单题一.What is Segment Tree?1.概念线段树是一种二叉搜索树,主要用...原创 2019-01-27 19:23:14 · 311 阅读 · 0 评论 -
树状数组基础引入:BZOJ 1266 计算逆序对问题
目录一.题目题目描述输入输出样例输入样例输出题解 二路归并 树状数组举一反三总结一.题目题目描述 设A[1..n]是一个包含N个数的数组。如果在i〈 j的情况下,有A[i] 〉a[j],则(i,j)就称为A中的一个逆序对。 例如,数组(3,1,4,5,2)的“逆序对”有 <3,1>,<3,2>,<4,2>,<<5...原创 2018-12-11 13:37:32 · 375 阅读 · 0 评论