ACM入门之【ST表/RMQ】
st表的作用是可以快速的得到区间内的一个最值(最大值或最小值),不过它是静态的,即一旦初始化不能修改。
ST表它可以做到O(nlogn)
预处理,O(1)
查询最值。
ST表模板:
f[i][j]表示从i开始,长度是2^j的区间长度中最大值是多少
const int N=1e5+1;
int n,mx[N][20],mn[N][20],a[N];
int getmx(int l,int r){//区间[l,r]内的最大值int tmp=log2(r-l+1);return max(mx[l][tmp],mx[r-(1<<tmp)+1][tmp]);
}
int getmn(int l,int r){//区间[l,r]内的最小值int tmp=log2(r-l+1);return min(mn[l][tmp],mn[r-(1<<tmp)+1][tmp]);
}
void init()//构建ST表
{for(int i=1;i<=n;i++) mx[i][0]=mn[i][0]=a[i];for(int j=1;j<20;j++){for(int i=1;i+(1<<j)-1<=n;i++){mx[i][j]=max(mx[i][j-1],mx[i+(1<<j-1)][j-1]);mn[i][j]=min(mn[i][j-1],mn[i+(1<<j-1)][j-1]);}}
}
P3865 【模板】ST 表
P2880 [USACO07JAN] Balanced Lineup G
ACM入门之【ST表/RMQ】相关推荐
- POJ 3368 Frequent values 【ST表RMQ 维护区间频率最大值】
传送门:http://poj.org/problem?id=3368 Frequent values Time Limit: 2000MS Memory Limit: 65536K Total S ...
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
目录 一.倍增算法 二.倍增算法的应用:求LCA(最近公共祖先)附模板题 三.倍增算法的应用:RMQ 问题(ST表)附模板题 一.倍增算法 要了解倍增之前,强烈建议大家先看一下这位大佬对倍增的解释:[ ...
- RMQ问题-ST表倍增处理静态区间最值
简介 ST表是利用倍增思想处理RMQ问题(区间最值问题)的一种工具. 它能够做到O(nlogn)预处理,O(1)查询的时间复杂度,效率相当不错. 算法 1.预处理 ST表利用倍增的思想.以洛谷的P38 ...
- 51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)
题目链接 \(Description\) 给定一棵树.每次询问给定\(a\sim b,c\sim d\)两个下标区间,从这两个区间中各取一个点,使得这两个点距离最远.输出最远距离. \(n,q\leq ...
- 【牛客 - 371牛客OI周赛7-提高组B】小睿睿的询问(RMQ,ST表维护下标)
题干: 链接:https://ac.nowcoder.com/acm/contest/371/B 来源:牛客网 小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i].有m个询问,对于每一个询问,小 ...
- 线性结构 —— 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]中的元素遍历一遍,即可寻 ...
- ACM模板——线段树树状数组ST表
int bit[maxn],n; void init() {n = maxn;memset(bit,0,sizeof(bit)); } int sum(int i) {int s = 0;while( ...
最新文章
- Ubuntu14.04桥接网络设置与SSH登陆
- python切换ip群发邮件_python获取外网IP并发邮件的实现方法
- 分布式消息队列 Kafka
- 汽车引擎是怎么工作的
- 在vb中实现真正锁定的带自定义菜单的文本控件
- Kotlin — 在一个项目中混用 Java 与 Kotlin(混合开发)
- 在线CHM阅读器(2)——文件提取及关键文件解析
- 树莓派命令连接wifi_使用命令行设置树莓派的wifi网络
- wow Warlock shushia
- 【性能测试之问题分析】遇到内存告警百分之80以上的排查逻辑及实例分析(关键字:JVM、JAVA)
- type_traits之 析取 合取 否定
- 在电脑上显示未知发布者怎么办_Win7无法验证发行者、未知发布者的解决方法...
- 嫦娥奔月(神话,非航天器)
- 最新GLPI--优秀的linux开源IT资产管理系统
- 模电学习5. 耦合电容、去耦电容与旁路电容
- 误删path等环境变量(系统变量/用户变量)
- 超级强大的网格grid布局
- 小马智行进军前装量产,从自研域控制器入手?
- Vue-----Vue本地应用篇(2)
- 数学建模——种群竞争模型