模板 ST表
2024-09-04 17:37:40
ST表
询问静态最值。
code:
#include <iostream>
#include <cstdio>
using namespace std;
inline int read(){
int sum=0,f=1; char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}
while(ch>='0'&&ch<='9'){sum=(sum<<1)+(sum<<3)+ch-'0'; ch=getchar();}
return sum*f;
}
const int wx=100017;
int f[wx][21],lo[wx];
int n,m;
void pre(){
lo[1]=0; lo[2]=1;
for(int i=3;i<=n;i++)lo[i]=lo[i/2]+1;
}
int query(int l,int r){
int mid=lo[r-l+1];
return max(f[l][mid],f[r-(1<<mid)+1][mid]);
}
int main(){
n=read(); m=read(); pre();
for(int i=1;i<=n;i++)f[i][0]=read();
for(int j=1;j<=21;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;i<=m;i++){
int l,r;
l=read(); r=read();
printf("%d\n",query(l,r));
}
return 0;
}
最新文章
- hadoop map-red的执行过程
- 自己写的一个Yeoman的Generator-Require-Angularjs
- RBAC(Role-Based Access Control,基于角色的访问控制)
- WPF 绑定二(绑定指定的字符串)
- python的min()函数也可用于比较tuple
- .Echo 命令中经常提到回显,是什么意思?
- poj2409
- hdu 3339 In Action
- Linux环境进程间通信(二):信号(下)
- jQuery kxbdMarquee 无缝滚动
- 并行模式库PPL应用实战(一):使用task类创建并行任务
- Web前端学习——CSS
- CSS学习笔记1:基础知识
- Python_Excel文件操作
- gitlab搭建
- setuid setgid
- Linux内核分析-创建新进程的过程
- Python装饰器的深入理解
- VS2010 调试C++项目 fatal error LNK1123 错误解决办法
- 【转】MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)