RMQ与SparseTable(ST表)
静态区间最值问题(RMQ)
ST表。
#include <iostream>
using namespace std;int N, Q;
int D[(1<<17)][17];
int A[(1<<17)];void RMQ_INIT() {for(int i=1; i<=N; i++) D[i][0] = A[i];for(int j=1; (1<<j)<=N; j++)for(int i=1; i+(1<<j)-1<=N; i++)D[i][j] = min(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 min(D[L][k], D[R-(1<<k)+1][k]);
}int main() {int L, R;cin >> N >> Q;for(int i=1; i<=N; i++) cin >> A[i];RMQ_INIT();for(int i=1; i<=Q; i++) {cin >> L >> R;cout << RMQ(L, R) << ' ';}return 0;
}
RMQ与SparseTable(ST表)相关推荐
- 51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)
题目链接 \(Description\) 给定一棵树.每次询问给定\(a\sim b,c\sim d\)两个下标区间,从这两个区间中各取一个点,使得这两个点距离最远.输出最远距离. \(n,q\leq ...
- 【51nod - 1174 】区间中最大的数(RMQ问题,ST表,模板)
题干: 给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少. 例如: 1 7 6 3 1.i = 1, j = 3,对应的数为7 6 3,最大的数为 ...
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...
- RMQ问题-ST表倍增处理静态区间最值
简介 ST表是利用倍增思想处理RMQ问题(区间最值问题)的一种工具. 它能够做到O(nlogn)预处理,O(1)查询的时间复杂度,效率相当不错. 算法 1.预处理 ST表利用倍增的思想.以洛谷的P38 ...
- 线性结构 —— ST 表与 RMQ
[概述] RMQ(Range Minimum/Maximum Query),是对于长度为 n 的数列 A,回答若干次询问 RMQ(i,j),返回数列 A 中下标在区间 [i,j] 中的最值,即:区间最 ...
- LCA RMQ+ST表学习笔记
RMQ RMQ问题:在给定的一个长度位N的区间中,有M个询问,每次询问给出区间[L,R],求出区间段元素的 最大值/最小值.对于RMQ问题很容易想到遍历的做法,将区间[L,R]中的元素遍历一遍,即可寻 ...
- 【专题】用ST表解决RMQ刷题总结
[专题]用ST表解决RMQ刷题总结 看了一下上次写博客居然是好久以前的事了(我真是老懒狗了 ) 开门见山,直接放专题链接和代码 kuangbin rmq专题 这个contest里面一共十道题但是实际上 ...
- 【模板】RMQ问题—st表实现
Luogu P3865 [模板]ST表 先放我邵哥的题解qwq邵哥太强辣!!!!!!!!!! 转载于:https://www.cnblogs.com/Hwjia/p/9804239.html
最新文章
- ES6中export及export default的区别
- java第k大的数字,JAVA中寻找最大的K个数解法
- HTML5 ArrayBufferView之DataView
- 深度学习应用实战案例-员工流失预测模型(Python源代码)
- Mysql Too many connections解决方法
- atm系统的用例模型_战斗系统执行式测试经验汇总
- 解决vs新建项目是模板丢失的问题
- 2016.9.24 の 測試
- C如何将二维数组作为返回值
- es6 includes(), startsWith(), endsWith()
- 小米路由器怎么连接无盘服务器,播放器+服务器的方法瞬间玩转小米路由方法图文介绍...
- c++ 高效解析url算法
- ctypealpha php_php中Ctype函数用法详解
- node实现基于token的身份验证
- 程序员的绩效到底是应该衡量项目,还是改 Bug 量?
- myeclipse 实现框架 spring+springmvc+springsecurity+myibatis+mysql用户认证和人员增删改查
- 如何根据configure.ac和Makefile.am为开源代码产生当前平台的Makefile
- 关于delphi中多线程采用定时器的做法
- 用PS抽出滤镜让头发溶于背景nbsp;简单…
- 「案例分享」工程总承包模式下对分包单位管理和控制的做法
热门文章
- GAN小结(BEGAN EBGAN WGAN CycleGAN conditional GAN DCGAN PGGAN VAEGAN)
- 岁月温柔-18 妈妈在市ICU第8天
- principal argument cannot be null
- 梯度下降法和最速下降法区别
- 图标右上角的数字小圆圈 如图 在tabBarController中设置
- android之java程序性能优化
- oracle 数据类型是什么,oracle的数据类型有哪些?
- mysql数据库备份与恢复命令
- Android Snackbar使用方法及小技巧-design
- html中怎么设置input的背景颜色,css里我们选中一个div里的一个input设置背景色