静态区间最值问题(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表)相关推荐

  1. 51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)

    题目链接 \(Description\) 给定一棵树.每次询问给定\(a\sim b,c\sim d\)两个下标区间,从这两个区间中各取一个点,使得这两个点距离最远.输出最远距离. \(n,q\leq ...

  2. 【51nod - 1174 】区间中最大的数(RMQ问题,ST表,模板)

    题干: 给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少. 例如: 1 7 6 3 1.i = 1, j = 3,对应的数为7 6 3,最大的数为 ...

  3. 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析

    目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...

  4. 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析

    目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...

  5. RMQ问题-ST表倍增处理静态区间最值

    简介 ST表是利用倍增思想处理RMQ问题(区间最值问题)的一种工具. 它能够做到O(nlogn)预处理,O(1)查询的时间复杂度,效率相当不错. 算法 1.预处理 ST表利用倍增的思想.以洛谷的P38 ...

  6. 线性结构 —— ST 表与 RMQ

    [概述] RMQ(Range Minimum/Maximum Query),是对于长度为 n 的数列 A,回答若干次询问 RMQ(i,j),返回数列 A 中下标在区间 [i,j] 中的最值,即:区间最 ...

  7. LCA RMQ+ST表学习笔记

    RMQ RMQ问题:在给定的一个长度位N的区间中,有M个询问,每次询问给出区间[L,R],求出区间段元素的 最大值/最小值.对于RMQ问题很容易想到遍历的做法,将区间[L,R]中的元素遍历一遍,即可寻 ...

  8. 【专题】用ST表解决RMQ刷题总结

    [专题]用ST表解决RMQ刷题总结 看了一下上次写博客居然是好久以前的事了(我真是老懒狗了 ) 开门见山,直接放专题链接和代码 kuangbin rmq专题 这个contest里面一共十道题但是实际上 ...

  9. 【模板】RMQ问题—st表实现

    Luogu P3865 [模板]ST表 先放我邵哥的题解qwq邵哥太强辣!!!!!!!!!! 转载于:https://www.cnblogs.com/Hwjia/p/9804239.html

最新文章

  1. ES6中export及export default的区别
  2. java第k大的数字,JAVA中寻找最大的K个数解法
  3. HTML5 ArrayBufferView之DataView
  4. 深度学习应用实战案例-员工流失预测模型(Python源代码)
  5. Mysql Too many connections解决方法
  6. atm系统的用例模型_战斗系统执行式测试经验汇总
  7. 解决vs新建项目是模板丢失的问题
  8. 2016.9.24 の 測試
  9. C如何将二维数组作为返回值
  10. es6 includes(), startsWith(), endsWith()
  11. 小米路由器怎么连接无盘服务器,播放器+服务器的方法瞬间玩转小米路由方法图文介绍...
  12. c++ 高效解析url算法
  13. ctypealpha php_php中Ctype函数用法详解
  14. node实现基于token的身份验证
  15. 程序员的绩效到底是应该衡量项目,还是改 Bug 量?
  16. myeclipse 实现框架 spring+springmvc+springsecurity+myibatis+mysql用户认证和人员增删改查
  17. 如何根据configure.ac和Makefile.am为开源代码产生当前平台的Makefile
  18. 关于delphi中多线程采用定时器的做法
  19. 用PS抽出滤镜让头发溶于背景nbsp;简单…
  20. 「案例分享」工程总承包模式下对分包单位管理和控制的做法

热门文章

  1. GAN小结(BEGAN EBGAN WGAN CycleGAN conditional GAN DCGAN PGGAN VAEGAN)
  2. 岁月温柔-18 妈妈在市ICU第8天
  3. principal argument cannot be null
  4. 梯度下降法和最速下降法区别
  5. 图标右上角的数字小圆圈 如图 在tabBarController中设置
  6. android之java程序性能优化
  7. oracle 数据类型是什么,oracle的数据类型有哪些?
  8. mysql数据库备份与恢复命令
  9. Android Snackbar使用方法及小技巧-design
  10. html中怎么设置input的背景颜色,css里我们选中一个div里的一个input设置背景色