RMQ问题之Sparse-Table算法
来源:互联网 发布:封面设计 知乎 编辑:程序博客网 时间:2024/05/27 19:27
RMQ问题,即范围最小值问题,给出一个n个元素的数组A,设计一个数据结构,支持查询操作Querry(L, R),表示计算min{A[L], A[L+1], …, A[R]}。如果对于用循环来计算,则每次查询都要O(n)的时间,还是长。这里不是求和操作,也用不了前缀和。所以这里就用到了Sparse-Table算法,它能用O(nlogn)的时间预处理,而查询只需要O(1)。
预处理是建立一个二维数组d,用d[i][j]表示从i开始的,2^j长度的这一段中的最小值,那么就可以这么递推下去了:d[i][j] = min{d[i][j-1], d[i + (1<<(j-1)), j-1]},预处理时可以自底向上预处理,无需递归。
查询时,先找到一个整数k,使得2^k ≤ R - L + 1,结果为以L开头和以R结尾,长度均为2^k的两个区间的最小值的最小值,即min{d[L][k], d[R-(1<<k)+1][k]}。
0 0
- RMQ问题之Sparse-Table算法
- RMQ问题之Sparse-Table算法
- RMQ算法之Sparse Table算法
- RMQ问题的Sparse-Table算法
- RMQ问题--ST算法(Sparse Table)
- RMQ问题 —— Sparse-Table算法
- RMQ问题——sparse-table算法
- RMQ问题----ST(Sparse-Table)算法
- RMQ问题----ST(Sparse-Table)算法
- ST(Sparse Table)算法求解RMQ问题
- RMQ算法 - Sparse-Table
- Sparse Table算法(求解RMQ)
- 算法 RMQ(Range Minimum Query)问题:Sparse-Table算法
- Sparse Table算法 - RMQ问题的简单高效算法
- 数据结构与算法系列----Sparse Table算法(RMQ问题)
- 【Data Structure】RMQ问题的Sparse-Table算法
- 区间最小值查询,RMQ,Sparse-Table算法
- 静态RMQ的Sparse Table算法
- 手势操作各个方法的含义
- 2.Struts2_HelloWorld
- Android自定义组件系列【16】——最帅气的自动滚动广告条
- SSH(二)框架整合
- HTML5 canvas 在线画笔绘图工具(三)
- RMQ问题之Sparse-Table算法
- Web_PHP_Win7 PHP最新环境搭建(Apache配置、PHP配置、MySQL配置)
- 为招能人,他们这么干!
- Xamarin.Android 打包Apk
- DES加密和解密字符串(测试可用)
- 默染江山——oc协议(protocal)
- sql server 为大表增加id列
- wms 对接 学到什么 ,注意什么
- 快速学习能力的培养