RMQ sparse-table
来源:互联网 发布:淘宝新店铺 购买 编辑:程序博客网 时间:2024/06/05 17:09
RMQ (Range Minimum/Maximum Query) 区间最小值问题。
sparse-table算法复杂度O(nlogn)
设d[i][j]表示从i开始,长度问哦2^j的一段元素中的最小值,等于前一半的最小值和后一半的最小值中小的那个,也就是d[i][j]=min(d[i][j-1],d[i+2^(j-1),j-1])。询问的时候找到2^k<=R-L+1的最大的k,也就是2^k大于区间长度的一半,这样从L开始长度为2^k和长度为2^k到R截止的这两个区间肯定覆盖了[L,R]。区间最小值就是min(d[L][k],d[R-2^k+1][k])。
d一维大小为N,二维大小为lgN。
void RMQ_init(const vector<int>& A){ int N=A.size(); for(int i=0;i<N;i++) d[i][0]=A[i]; for(int j=1;(1<<j)<=N;j++) for(int i=0;i+(1<<j)-1<N;i++) d[i][j]=max(d[i][j-1],d[i+(1<<(j-1))][j-1]);}int RMQ(int L,int R){ int k=0; while((1<<(k+1))<=R-L+1) k++; return max(d[L][k],d[R-(1<<k)+1][k]);}
0 0
- RMQ sparse-table
- RMQ算法 - Sparse-Table
- RMQ(Sparse-Table)
- Sparse Table算法(求解RMQ)
- 区间最小值查询,RMQ,Sparse-Table算法
- 静态RMQ的Sparse Table算法
- RMQ问题之Sparse-Table算法
- RMQ问题的Sparse-Table算法
- RMQ问题之Sparse-Table算法
- RMQ问题--ST算法(Sparse Table)
- RMQ问题 —— Sparse-Table算法
- RMQ问题——sparse-table算法
- RMQ算法之Sparse Table算法
- RMQ问题----ST(Sparse-Table)算法
- RMQ问题----ST(Sparse-Table)算法
- ST(Sparse Table)算法求解RMQ问题
- Range Minimum/Maximum Query (RMQ) - Sparse Table 算法
- RMQ Sparse Table实现简析及代码
- C#中SqlDataAdapter的使用小结
- KMP算法next的求法
- 更相损减法和辗转相除法 求最大公约数和最小公倍数(C语言)
- 各种网络头衔的说明
- 指针的大小到底是由谁决定?是多少?
- RMQ sparse-table
- OCX做带数字签名的CAB文件
- SYN攻击原理
- win7 64位下安装nodejs 的jquery@1.6.3时无法安装依赖包jsdom的解决办法
- linux常用命令全拼
- Windows下Python添加库(模块)路径
- 'telnet' is not recognized as an internal or external command 解决办法
- 应届毕业生的户口,档案到底有多大的用处
- Android逆向分析(反编译)工具ded的使用