
RMQ问题
文章平均质量分 81
Unin88
这个作者很懒,什么都没留下…
展开
-
RMQ问题之Sparse-Table算法
范围最小值问题(Range Minimum Query)算法简述给出一个数组,设计一个数据结构,支持查询操作,计算A[l]到A[r]的最小值。每次用一个循环来计算显然不够快,前缀和思想也不能提高效率。可以写一个线段树,但是预处理和查询的复杂度都是O(logn)。实践中最常用的是Tarjan的Sparse-Table算法,预处理时间是O(nlogn),但是查询只需要O(1),而且常数很小原创 2015-02-02 16:24:12 · 505 阅读 · 0 评论 -
Uva 11235 Frequent values
求解一段区间内出现次数最多的数出现的次数。由于数列已经是非降序排列,因此可以采用游程编码来进行预处理。游程编码(Run Length Ecoding),用count[i]表示第i段的数值出现的次数,num[p],left[p],right[p]分别表示位置p所在段的编号和左右端点的位置。处理结束后,这就是一个RMQ问题,使用ST算法加以解决即可。每次询问[l, r]的结果都是以下三个部分的最大值:原创 2015-02-02 18:31:18 · 428 阅读 · 0 评论