#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std; int f[100005][22]; int main(){
int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&f[i][0]);
for(int j=1;j<=20;j++) //枚举区间长度
for(int i=1;i+(1<<j)-1<=n;i++) //枚举起点
f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]); for(int i=1,l,r;i<=m;i++){
scanf("%d%d",&l,&r);
int k=log2(r-l+1); //区间长度的指数
printf("%d\n",max(f[l][k],f[r-(1<<k)+1][k]));
}
}

建议配合快读

int read() { //fast read
int x=0,f=1;
char c=getchar();
while(c<'0' || c>'9') { //!isdigit(c)
if(c=='-') f=-1;
c=getchar();
}
while(c>='0' && c<='9') { //isdigit(c)
x=x*10+c-'0';
c=getchar();
}
return x*f;
}

ST表+快读

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int read() { //fast read
int x=0,f=1;
char c=getchar();
while(c<'0' || c>'9') { //!isdigit(c)
if(c=='-') f=-1;
c=getchar();
}
while(c>='0' && c<='9') { //isdigit(c)
x=x*10+c-'0';
c=getchar();
}
return x*f;
} int f[100005][22]; int main(){
int n,m;
n=read(); for(int i=1;i<=n;i++) f[i][0]=read();
for(int j=1;j<=20;j++) //枚举区间长度
for(int i=1;i+(1<<j)-1<=n;i++) //枚举起点
f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
m=read();
for(int i=1,l,r;i<=m;i++){
l=read();
r=read();
int k=log2(r-l+1); //区间长度的指数
printf("%d\n",max(f[l][k],f[r-(1<<k)+1][k]));
}
}

ST表 RMQ问题(区间最大/最小值查询)的更多相关文章

  1. POJ 3368 Frequent values 【ST表RMQ 维护区间频率最大值】

    传送门:http://poj.org/problem?id=3368 Frequent values Time Limit: 2000MS   Memory Limit: 65536K Total S ...

  2. 【RMQ】 区间最值查询详解

    1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A ...

  3. ST表 || RMQ问题 || BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队 || Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup

    题面:P2880 [USACO07JAN]平衡的阵容Balanced Lineup 题解: ST表板子 代码: #include<cstdio> #include<cstring&g ...

  4. Find the hotel HDU - 3193 (ST表RMQ)

    Summer again! Flynn is ready for another tour around. Since the tour would take three or more days, ...

  5. RMQ 区间最大值 最小值查询

    /*RMQ 更新最小值操作 By:draymonder*/ #include <iostream> #include <cstdio> using namespace std; ...

  6. cf689d ST表RMQ+二分

    类似hdu5289,但是二分更复杂.本题枚举左端点,右端点是一个区间,需要二分找到区间的左端点和右端点(自己手动模拟一次),然后区间长度就是结果增加的次数 另外结果开long long 保存 /** ...

  7. Balanced Lineup 倍增思想到ST表RMQ

      Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 36864   Accepted: 172 ...

  8. hdu2888 二维ST表(RMQ)

    二维RMQ其实和一维差不太多,但是dp时要用四维 /* 二维rmq */ #include<iostream> #include<cstring> #include<cs ...

  9. RMQ求区间最大最小值

    #include<iostream> #include<cmath> #include<cstdio> #define N 50005 using namespac ...

  10. Max answer(单调栈+ST表)

    Max answer https://nanti.jisuanke.com/t/38228 Alice has a magic array. She suggests that the value o ...

随机推荐

  1. DynamoDB-键值存储

    什么是DynamoDB? DynamoDB 是一个你什么也不用管的 NoSql 数据库.记得给 AWS付账单就可以. 在2004年的时候, Amazon 发现 Oracle 数据库都不够用了.为了还能 ...

  2. selenium等待的三种方式(详细)

    1.强制等待 time.sleep(3) 这种方式会是操作强行等待3s才会进行下一步操作,但是这种放法,可能会延长测试的时间,如果元素在1s中出现,就会浪费2s的时间,并且这种放法单次有效,每次需要等 ...

  3. 2024年春秋杯网络安全联赛冬季赛部分wp

    部分附件下载地址: https://pan.baidu.com/s/1Q6FjD5K-XLI-EuRLhxLq1Q 提取码: jay1 Misc day1-简单算术 根据提示应该是异或 下载文件是一个 ...

  4. MapStruct入门使用

    MapStruct入门使用案例 以下是常用的使用举例,按照需求改动即可 @Data public class UserDO{ private int age; private String name; ...

  5. XReport通过数据控制控件是否打印

    需求场景:医嘱单在患者出院的时候,需要标记一条红线,表示以下没有医嘱了.数据库中此记录的一个字段属性isRed值来标记这一行. 实现:XReport报表的明细区域增加一个line1对象.然后在明细表格 ...

  6. flutter如何调试夜神模拟器

    1.下载夜神模拟器 地址:https://www.yeshen.com/ 下载后直接傻瓜式安装即可 2. 将夜神模拟器设置为手机版本 打开夜神模拟器,点击点击右上角的设置: 然后选择 性能设置 然后 ...

  7. DBeaver连接PostgreSQL后只有默认数据库“postgres”不显示其他数据库的问题解决办法

    我们在使用DBeaver连接PostgreSQL后,发现数据库中只有"postgres"默认数据库,不显示我们自己创建的数据库. 1.问题描述 我们在使用DBeaver连接Post ...

  8. 硬件设计:逻辑电平--CML

    参考资料:CML信号原理 PECL.LVDS和CML电平 常用逻辑电平及基本输入输出结构 LVDS和CML电平应用区别 CML(即Current Mode Logic,也就是电流模式逻辑)电路主要靠电 ...

  9. Luogu P3177 树上染色 [ 蓝 ] [ 树形 dp ] [ 贡献思维 ]

    一道很好的树形 dp !!!!! 树上染色. 错误思路 定义 \(dp[u][i]\) 表示以 \(u\) 为根的子树中,把 \(i\) 个点染成黑色的最大收益. 但这样写,就在转移的时候必须枚举每一 ...

  10. Git 远程仓库地址修改了怎么办?

    项目迁移了一波仓库地址,从自建的git-lab到gitee,所以远程仓库地址发生了变更. 命令: git remote -v # 查看本地配置的远程仓库地址,针对下图中的origin,有的人起名字可能 ...