RMQ求区间最大最小值
2024-08-30 10:21:57
#include<iostream>
#include<cmath>
#include<cstdio>
#define N 50005
using namespace std;
int maxx[N][],minn[N][],a[N];
int ST(int n)
{
for(int i=;i<=n;i++)
{
maxx[i][]=a[i];
minn[i][]=a[i];
}
for(int j=;(<<j)<=n;j++)
{
for(int i=;i+(<<j)-<=n;i++)
{
maxx[i][j]=max(maxx[i][j-],maxx[i+(<<(j-))][j-]);
minn[i][j]=min(minn[i][j-],minn[i+(<<(j-))][j-]);
}
}
}
int main()
{
int n,q,lf,rg,mx,mn;
cin>>n>>q;
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
ST(n);
for(int i=;i<=q;i++)
{
scanf("%d %d",&lf,&rg);
int k=log2(rg-lf+);
mx=max(maxx[lf][k],maxx[rg-(<<k)+][k]);
mn=min(minn[lf][k],minn[rg-(<<k)+][k]);
cout<<mx-mn<<endl;
}
}
最新文章
- 第四节:Vue表单标签和组件的基本用法,父子组件间的通信
- SMTP的相关命令
- C语言之广度优先算法
- silverlight visifire控件图表制作——silverlight 后台方法ControlChart.xaml.cs
- 一个可无限伸缩且无ABA问题的无锁队列
- String ";+"; 的补充说明---行粒度
- 201521123098 《Java程序设计》第2周学习总结
- Traefik实现Kubernetes集群服务外部https访问
- weui中的日期选择控件关于时间段的设置!
- Linux 性能监测:Memory
- 网站 Cookie only 唯一 防止被截获
- python--网络编程requests
- THUWC2019 摸鱼记
- Java 集合-Set接口和三个子类实现
- BZOJ1597:[USACO]土地购买(斜率优化DP)
- 170531、FormData 对象的使用
- qemu模拟器下编译运行基于riscv指令集的Linux操作系统
- mysql将日期字符串转换
- ABAP术语-RFC (Remote Function Call)
- Spring 的好处?