码迷,mamicode.com
首页 >  
搜索关键字:sparse-table    ( 31个结果
RMQ
1.定义 RMQ,Range Min/Max Query,区间最小/大值查询。 对于数组A, 定义Query(i,j)= min {Ai,Ai+1,…Aj},即为RMQ问题。 算法思想: 使用Tarjan的Sparse-Table算法,简称ST算法。 令d(i,j)表示从i开始的,长度为2^j的区间...
分类:其他好文   时间:2015-03-28 01:02:27    阅读次数:294
数据结构专题小结:RMQ问题
RMQ问题 范围最小值问题(Range Minimum Query)是指:给定一个n个元素的数组A[1],A[2]...A[n]。设计一个数据结构,支持查询操作Query(L,R):计算min{A[L],A[L+1]...A[R]}。 该问题在实践中常用Tarjan的Sparse-Table算法。它的预处理时间是O(N*logN),但查询只需要O(1),而且常数非常小。最重要的是,这个算法非常...
分类:其他好文   时间:2015-03-19 22:14:17    阅读次数:140
实用数据结构---RMQ问题
RMQ问题就是区间最小值问题,这是一个非常经典的题, 由他引申出来的也是不计其数最多的是给出一个区间,然后输入多组区间端点,求输入区间的最小值。 每次用循环来计算一个最小值显然不够快,怎么办呢? 实践中最常用的是Tarjan的 Sparse-Table算法,它的预处理时间是O(nlogn),但是查询只需要O(1),而且常数很小。 它的思想很简单,就是递推+二分的思想。我们先定义一个二维数组...
分类:其他好文   时间:2015-03-01 18:35:50    阅读次数:139
RMQ问题的Sparse-Table算法
范围最小值问题(Range Minimum Query) 给出一个n个元素的数组,设计数据结构使得支持查询操作Query(L,R) 计算[L,R]中最小值 Tarjan的Sparse-Table算法预处理时间为O(nlogn) 查询只需要O(1)而且常数很小。假设dp[i][j]表示从第i个数开始的2^j个数的最小值。 有下列公式:dp[i][j] = min(dp[i,j-1],dp[i+2...
分类:编程语言   时间:2015-02-22 21:57:56    阅读次数:200
HDU5172GTY's gay friends——区间查询(区间内的数互不相同)
http://acm.split.hdu.edu.cn/showproblem.php?pid=5172官方题解 一个区间是排列只需要区间和为len(len+1)2(len为区间长度),且互不相同,对于第一个问题我们用前缀和解决,对于第二个问题,预处理每个数的上次出现位置,记它为pre,互不相同即区间中pre的最大值小于左端点,使用线段树或Sparse Table即可在O(n)/O(nlogn)的...
分类:其他好文   时间:2015-02-15 18:12:15    阅读次数:161
Sparse Table讲解
Sparse Tabel名为稀疏表,又称为ST表,可以在O(1)的时间复杂度下完成查询区间最值,相比线段树和树状数 组,效率提升了不少.ST表本质上是一个很经典的dp,通过预处理完成O(1)的查询.既然是个dp,那我们来看下dp的 定义吧(下面以查询区间最大值为例). dp[i][j]:表示以i为起点,长度为2^j的区间最值 那么我们很容易得出状态转移方程:...
分类:其他好文   时间:2015-02-03 13:25:50    阅读次数:188
RMQ(range minimum/maximum query)即查询区间最大最小值。
对于求区间最大最小值,我们自然而然就想到了一个O(n)时间复杂度的算法,但是如果询问有很多呢?这样必然超时。当然我们可以用线段树来解,使得每一次查询的时间降到log(n),但是对于RMQ算法,只要我们做了些预处理,之后的查询我们仅需要O(1)的时间。Sparse_Table算法是解决RMQ问题的一类...
分类:其他好文   时间:2014-11-19 23:55:43    阅读次数:250
BZOJ 3172 Tjoi2013 单词 后缀数组
题目大意:给定一个n个单词的文章,求每个单词在文章中的出现次数 文章长度 首先将所有单词用空格连接成一个字符串,记录每个单词的起始位置和长度 然后求后缀数组,对于每个单词后缀数组中一定有连续一段后缀以这个单词开头,我们通过一开始记录的起始位置找到这个单词的后缀,然后左右端点二分答案,满足左右端点之间的后缀与原单词的LCP都当与等于原单词长度即可 时间复杂度O(nlogn) #includ...
分类:编程语言   时间:2014-11-12 15:05:52    阅读次数:823
poj 3264 区间最大最小值 RMQ问题之Sparse_Table算法
Balanced LineupTime Limit: 5000 MS Memory Limit: 0 KB64-bit integer IO format: %I64d , %I64u Java class name: Main[Submit] [Status] [Discuss]Descripti...
分类:其他好文   时间:2014-08-12 12:49:35    阅读次数:270
POJ 3264 Balanced Lineup ST算法
ST算法即是sparse table算法,就是稀疏表的意思,就是利用二分法来划分一个表,划分为2的次方段,之后利用这个st表计算查询结果,可以使得预处理时间O(nlgn),而查询时间为O(1) ; 那么有人会有疑问,既然查询时间是O(1),那么为什么这个算法很多时候并不比线段树快多少,甚至根本没有快过呢? 因为其实查询时间为O(log(range)), range为查询区间的大小,因为...
分类:其他好文   时间:2014-07-12 20:35:55    阅读次数:164
31条   上一页 1 2 3 4 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!