平衡树
文章平均质量分 77
forever_shi
但行好事,莫问前程;行你所行,无问西东!
展开
-
洛谷3960 列队 NOIP2017 动态开点线段树/Splay
题目链接题意:你现在有一个n*m矩阵,有q次操作,每次询问(x,y)位置的编号,(x,y)的起始编号是(y-1)*m+x。每次操作输出该位置的编号,并且拿出该编号,该行后面的向前补,然后对于最后一列向上补,最后把这个编号放在第n行第m列的位置。(n,m,q<=3e5)题解:这题想要用树形数据结构维护,但是发现空间不够。于是线段树就要动态开点,splay的话要把一段连续的编号缩成一个点...原创 2018-09-27 20:35:21 · 388 阅读 · 0 评论 -
洛谷3165 CQOI2014 排序机械臂 splay
题目链接题意:给你一个长度为nnn的序列,现在有一种对序列排序的方法:假设当前最小的前iii个已经找到了,我们找到i+1i+1i+1到nnn里面最早出现的最小值,设其出现位置为jjj,我们将区间[i+1,j][i+1,j][i+1,j]翻转来排序。输出每次翻转前要找的最小值的位置。n<=1e5n<=1e5n<=1e5题解:首先先吐槽一下,最近可能我实在是太蠢了,这个题硬是写了一天半。网上题解看了不少,都没看懂,感觉好像他们建的平衡树的下标含义和我似乎都不一样。于是最后还是自己yy原创 2021-07-21 14:58:49 · 157 阅读 · 0 评论 -
洛谷2042 bzoj1500 NOI2005 维护数列
题意:给你一个数列,你需要对它进行如下操作:1.在某一个数后面插入连续的一些数2.从某个数开始连续删除一些数3.把从某个数开始的连续的一些数全部变为x4.区间翻转5.区间求和6.区间最大子列由于要区间翻转,所以建两个虚拟节点1号节点和n+2号节点,以便区间翻转。插入连续的区间的话可以先把这个序列建成一棵平衡的树,再把k+1旋转到根,原来的k+2变为k+1的右子树...原创 2018-04-02 13:16:42 · 196 阅读 · 0 评论