ST表 st表可以解决区间最值的问题。可以做到O(nlogn)预处理 ,O(1)查询,但是不支持修改。 st表的大概思路就是用st[i][j]来表示从i开始的2的j次方个树中的最值,查询时就从左端点开始,找到区间长度是2的多少次方,然后进行查询。然而,很明显,我们要查询的区间长度不一定是2的多少次幂 ...
分类:
编程语言 时间:
2018-05-04 20:23:58
阅读次数:
297
codeforces 12D Ball 这道题有两种做法 一种用树状数组/线段树维护区间最值,一种用map维护折线,昨天我刚遇见了一道类似的用STL维护折线的题目: 392D Three Arrays 参考题解:http://blog.csdn.net/rzo_kqp_orz/article/det ...
分类:
其他好文 时间:
2018-03-20 18:07:35
阅读次数:
129
发现自己学的一直都是假的ST表QWQ。 ST表 ST表的功能很简单 它是解决RMQ问题(区间最值问题)的一种强有力的工具 它可以做到$O(nlogn)$预处理,$O(1)$查询最值 算法 ST表是利用的是倍增的思想 拿最大值来说 我们用$Max[i][j]$表示,从$i$位置开始的$2^j$个数中的 ...
分类:
其他好文 时间:
2018-03-17 10:45:28
阅读次数:
163
【题意概述】 给出一个[0,1,000,000,000]的整数数轴,刚开始每个位置都为0,有n个区间加操作,最后询问数轴上最大的数是多少。 【题解】 我写的是离散化后线段树维护区间最值。 其实貌似不用线段树QAQ... ...
分类:
系统相关 时间:
2018-03-09 22:42:36
阅读次数:
241
跟线段树求区间最值一样每个节点维护左边开始的最大连续空房间数、右边开始的最大连续空房间数、这个区间内的最大连续空房间数 cpp include include using namespace std; int n, m, opt, uu, vv; struct SGT{ int lma[200005 ...
分类:
其他好文 时间:
2018-03-03 21:24:21
阅读次数:
140
来源:http://blog.csdn.net/y990041769/article/details/38405063 RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用线段树同样能够解决。 问题:给出n个数ai, ...
分类:
编程语言 时间:
2018-03-03 20:31:56
阅读次数:
176
RMQ问题(区间最值问题Range Minimum/Maximum Query) ST算法 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列a,回答若干询问RMQ(A,i,j)(i, j<=n),返回数列a中下标在i,j之间的最小 ...
分类:
编程语言 时间:
2018-02-06 21:34:46
阅读次数:
206
RMQ(区间最值)之ST算法 RMQ即Range Minimum/Maximun Query 中文意思:查询一个区间的最小值/最大值 比如有这样一个数组:A{3 2 4 5 6 8 1 2 9 7},然后问你若干问题: 数组A下标2~7区间最小的值是多少? 最小值是(1) 数组A下标3~6区间最小的 ...
分类:
编程语言 时间:
2018-02-04 11:07:43
阅读次数:
228
对于带修改的区间求和能做到O(n log n)预处理,O(log n)查询;而不带修改的可以做到O(n)预处理,O(1)查询。那么不带修改的区间最值能做到O(1)查询吗? 区间最值有这样一个性质:对于一段区间的两个子区间,如果它们覆盖了整个区间(可以有重叠部分),那么这两段区间各自的最大(或最小)值 ...
分类:
其他好文 时间:
2018-01-30 12:43:59
阅读次数:
128