![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ltrbless
这个作者很懒,什么都没留下…
展开
-
红黑树实现代码+详细注释
简介因为网上太多红黑树原理的讲解了,不需要再去讲解原理,所以在这就提供一些将原理不错的博客,然后主要是给红黑树代码的实现,用的c++语言模板实现红黑树,并附带详细注释。(目前只实现了红黑树的插入与查询操作,并可视化打印红黑树)。红黑树插入操作的流程图:(参考:红黑树总结 - lukazan - 博客园 (cnblogs.com),该博客用图详细解释了红黑树插入操作的事件,然后我用红色对其事件进行了编号,以便于和代码注释相对应)红黑树的本质其实就是2-3树,在上面推荐的博客中也有提到。代码原创 2021-05-19 11:44:43 · 1544 阅读 · 0 评论 -
Bond UVA - 11354 (按秩合并优化的并查集)
题意:链接:https://vjudge.net/problem/UVA-11354给你 n 个点,m 条边无向边,每条边告诉起点和终点还有权值,q次询问,每次询问从 s 点到 t 点的路径上的最小的最大权值(最大权值最小化)解题思路:首先如果把这个无向图建成一个最小生成树,那么在最小生成树的任意两点有仅有一条路,并且也使得最大权值最小化了,但是每次都要花费 o(n) 的时间搜索,...原创 2019-08-13 10:22:07 · 152 阅读 · 0 评论 -
2019牛客暑期多校训练营(第八场)E - Explorer (线段树+离散化+按秩合并优化的并查集+并查集的拆除)
题意:链接:https://ac.nowcoder.com/acm/contest/888/E给你 n 个点,m 条边,每条边给你一组数 (u, v, l, r) 代表如果你想从u点走到v点,你的身高需要满足范围 [ l , r ] ,问你从 1 走到 n 点,你有多少种身高可以选择。1 ≤ n,m ≤ 10^5,1 ≤ u < v ≤ n,1 ≤ l ≤ r ≤ 10^9解...原创 2019-08-12 21:14:54 · 246 阅读 · 4 评论 -
2019牛客暑期多校训练营(第九场)Cutting Bamboos (主席树+二分)
题意:链接:https://ac.nowcoder.com/acm/contest/889/H给你 n 棵树每一棵树的高度,每一棵树从左到右编号为 1, 2, ... n 。Q 次询问,每次询问(l, r, x, y)代表在编号为 [l, r] 这个闭区间内的树,我需要砍 y 次把这些树砍成高度为 0 ,但是每次砍只能规定一个高度,这个高度以上的需要全部砍去,下面的不动,且每次砍的高度之和...原创 2019-08-16 16:16:30 · 237 阅读 · 6 评论 -
2017年ICPC中国大陆区域赛 - Sum of xor sum (线段树维护子段)
题意:链接:https://vjudge.net/contest/319951#problem/T给你 n 个数,和 q 次询问,每次询问给你 [ l , r ] ,让输出在区间 [ l , r ] 里每一个子区间亦或和加和。比如: 给你三个数 1、2、3、和一个询问 [ 1 , 3 ] , 需要输出 1 + 2 + 3 + 1 ^ 2 + 2 ^ 3 + 1 ^ 2 ^ 3 。(1 ≤ ...原创 2019-08-20 11:43:42 · 718 阅读 · 0 评论 -
E - Snowy Smile HDU - 6638 (线段树维护最大连续子段和)
题意:链接:https://vjudge.net/contest/319475#problem/E给你n个点,每个点告诉你坐标还有权值(有正有负),让你画一个矩形把一些点括起来,问你矩形括起来的权值最大是多少,可以让矩阵面积为 0 ,也就是不括。解题思路:首先对 x 和 y 轴离散化,枚举一个上边界,然后从上边界开始一行一行的加入线段树中,每加一行就取一个最大,每次更新上边界就需要...原创 2019-08-14 09:22:51 · 281 阅读 · 0 评论 -
2019牛客暑期多校训练营(第七场) Find the median(权值线段树+离散化)
题意+解题思路:给你一种计算规则,让你计算出 L [ i ] , R [ i ] ,( i 取值是 1 - n )。然后每次增加 L[ i ] - R[ i ] 这些数,然后让你求当前的中位数,如果是偶数个(如 6 个 取第3个)。比如 L[ 1 ] = 5 , R [ 1 ] = 15 . 就会增加 5、6、7 ... ... 13、14、15 这些数。又因为区间大小为 1 - 10^9 ...原创 2019-08-09 12:05:28 · 269 阅读 · 0 评论 -
Keen On Everything But Triangle HDU - 6601 (主席树)
题意:题目链接:https://vjudge.net/contest/315593#problem/C给你 n 个数,q 次询问,每次询问一个区间 [l, r],在这个区间里让你找可以构成三角形的最大周长。1 <= n <= 10^5解题思路:首先很容易想到对这 l - r 个数排序,然后从后相邻三个为一组往前找就行,但是询问区间都要排序时间复杂度太高,就可以用主席树来...原创 2019-07-31 19:19:13 · 182 阅读 · 0 评论 -
Find the answer HDU - 6609 (权值线段树)
题意:链接:https://vjudge.net/contest/315593#problem/GQ组样例,给你 n 个数,和一个上限值 m ,让你求在第 i 个位置时,为了使前 i 个数的和(包括第 i 个数)不超过 m ,问你最少删除第 i 个数之前的几个数(不可以删除第 i 个数)。让你把 i 取 1 - n 时都输出出来。(1<=n<=2*10^5 1<=m&l...原创 2019-07-31 19:11:08 · 174 阅读 · 0 评论 -
2019牛客暑期多校训练营(第二场)Second Large Rectangle (单调栈)
单调栈讲解:已经会单调栈的可以直接跳过看2019牛客暑期多校训练营(第二场)Second Large Rectangle单调栈:先来说下单调栈,单调栈按字面意思就是栈,但是里面的值是单调的。举个例子:给你一组序列 : 2 1 4 5 1 3 3 让这组序列进单调栈,步骤:1. st : 22. st : 1 (因为 1 比 2 为了保证单调递增,所以把 2 先出栈,再把 ...原创 2019-07-25 16:30:45 · 158 阅读 · 0 评论 -
K-th Number POJ - 2104(可持久化线段树)
You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to return quic...原创 2019-05-17 08:13:46 · 119 阅读 · 0 评论 -
山东省第五届ACM竞赛_Devour Magic(线段树)
题目链接https://v4t.jk1507.cn/problem.php?pid=2880题意有连续n个桶,每隔一秒会往所有的桶里各放入一个礼物,取m次,每次取落在该区间内所有桶中的所有礼物,问你m次操作后你会有多少个礼物。(题意进行了抽象,方便理解)题解开始打算使用差分数组来做,最后发现不管怎么查分总是不行,然后又想成按时间倒着做,找每个桶最后的覆盖时间,相当于线段染色问...原创 2019-04-24 20:43:58 · 108 阅读 · 0 评论 -
Calculate the Function ZOJ - 3772(线段树维护矩阵乘法)
题目链接:Calculate the FunctionZOJ - 3772题意:给你一个区间 [L, R] ,再给你一个递推关系 f(L) = A[L] ; f(L+1) = A[L+1] ; f(x) = f(x - 1) + f(x - 2) * A[x] (x > 2) ,然后让你求 f(R)的值。题解:看到有递推式,首先想到矩阵快速幂,那么递推矩阵是什么呢?...原创 2019-04-26 19:10:59 · 373 阅读 · 1 评论 -
超容易理解的莫队算法和模板
这个是我见到的最容易理解的莫队算法讲解,看了半小时,就能盲敲莫队的模板题目了(手动滑稽),希望大家看完也有所收获。以下转载于:https://www.myblog.link/2016/01/26/MO-s-Algorithm/莫队算法详解2016-01-26AlgorithmAlgorithm问题描述 复杂度O(N2)O(N2) 的简单的解法 一个解决上述问...原创 2019-03-11 19:14:04 · 296 阅读 · 0 评论 -
HDU-1556 Color the ball(前缀数组 || 线段树)
题目: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?Input 每个测试实例第一行为一个整数N,(N <= 10000...原创 2019-01-30 19:02:01 · 144 阅读 · 0 评论