ST表类似树状数组,线段树这两种算法,是一种用于解决区间最值查询问题的离线算法。与线段树相比,预处理复杂度同为O(nlogn),但查询复杂度ST表为O(1),比线段树查询O(lgN)小,但就不涉及修改的区间查询而言,ST表无疑是更好的选择。 ST表主体,即st[i][j],表示数据数组a[ ]从下标 ...
分类:
其他好文 时间:
2019-08-23 00:09:44
阅读次数:
80
散步的时候yy区间最值的不同分块做法,发现单点修改$O(\sqrt{n})$查询$O(1)$的做法不是很会? 于是yy了一个奇怪做法,写出来看看。 考虑查询的时候两端的散点可以用前后缀最值查出来,所以只需要考虑中间的块。 中间这些块似乎比较恶心,不知道怎么做。 于是我们把每一个块的最值拎出来作为一个 ...
分类:
其他好文 时间:
2019-08-22 23:36:18
阅读次数:
96
ST算法是求解RMQ问题的好方法,可以在0(NlogN)的预处理后实现O(1)的查询。该算法是在倍增的思想基础上实现的,比较基础,理解起来也不难。 补充几个要点: RMQ问题:即区间最值问题,给出一个序列a,要求求出区间[l,r]内的最大值。 倍增:(来自lyd的蓝书) log2(x)函数:返回$l ...
分类:
编程语言 时间:
2019-08-20 14:05:03
阅读次数:
92
RMQ算法全称为(Range Minimum/Maximum Query)【区间最值】 主要是这两种算法解决区间最值问题:线段树和稀疏表(Sparse Table) ST算法是解决RMQ(区间最值)问题,它能在O(nlogn)的时间预处理,然后O(1)回答。 其原理是倍增,f[i][j]表示从i位起 ...
分类:
其他好文 时间:
2019-08-09 17:36:42
阅读次数:
100
RMQ(Range Minimum/Maximum Query)区间最值查询,即给出长度为n的数组A,以及m组询问s、t(s<=t<=n),返回区间[s,t]中的最值。 基于线段树的方法实现的话,建树O(n),查询O(logn),相比ST,适合用于n更大,m较小的情况。 https://blog.c ...
分类:
其他好文 时间:
2019-07-31 16:51:57
阅读次数:
96
ZKW线段树 数组定义 单点修改区间最值 区间修改单点查询 ...
分类:
其他好文 时间:
2019-07-31 15:18:35
阅读次数:
101
概述: RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的 ...
分类:
编程语言 时间:
2019-07-26 13:14:04
阅读次数:
113
题目:poj.org/problem?id=3264 题意:求一段区间内最大值与最小值的差。 看到区间最值首先想到RMQ--ST算法。但本题出现在了kuangbin专题的线段树里。 用线段树也无思维难点,但有两个坑: 1. 查询函数中,区间不包含时的返回值。 2.用cin,cout会TLE。用c的输 ...
分类:
其他好文 时间:
2019-07-13 13:22:03
阅读次数:
96
今天考试考了一些神仙数据结构 T1 线段树维护区间加,区间开方,区间和 (数据范围:5e5) T2 线段树维护区间加,区间除,区间和,区间最值 对于这些题目,就像是之前考的区间与,区间或一样,除法,开方的操作会让各个数字之间越来越相近,最后变成一串一串连续的数字都是一样的,所以对于这一部分的操作我们 ...
分类:
其他好文 时间:
2019-06-18 19:45:03
阅读次数:
89
Pre-Scene 我们有一道小水题 给出一个长度为n的序列,m次询问,每次询问区间内的最大值 有大佬说,线段树秒切 另一个大佬说,用什么线段树,我树状数组比你还码量少,一样秒切 ST表...神秘的大佬在角落里出声… 什么!大佬们回头喊道 关于ST表 确实,关于求区间最值,线段树和树状数组已经很ni ...
分类:
其他好文 时间:
2019-05-03 11:57:35
阅读次数:
184