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;
}

最新文章

  1. hadoop map-red的执行过程
  2. 自己写的一个Yeoman的Generator-Require-Angularjs
  3. RBAC(Role-Based Access Control,基于角色的访问控制)
  4. WPF 绑定二(绑定指定的字符串)
  5. python的min()函数也可用于比较tuple
  6. .Echo 命令中经常提到回显,是什么意思?
  7. poj2409
  8. hdu 3339 In Action
  9. Linux环境进程间通信(二):信号(下)
  10. jQuery kxbdMarquee 无缝滚动
  11. 并行模式库PPL应用实战(一):使用task类创建并行任务
  12. Web前端学习——CSS
  13. CSS学习笔记1:基础知识
  14. Python_Excel文件操作
  15. gitlab搭建
  16. setuid setgid
  17. Linux内核分析-创建新进程的过程
  18. Python装饰器的深入理解
  19. VS2010 调试C++项目 fatal error LNK1123 错误解决办法
  20. 【转】MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)

热门文章

  1. kubernetes 学习 创建cronjob
  2. 第八课 go的条件语句
  3. Maven 创建动态web 3.0项目
  4. 问题:css 自动换行;结果:CSS控制文本自动换行
  5. 9-EasyNetQ之基于主题的路由
  6. 5-EasyNetQ之Publish(黄亮翻译)
  7. cocos2d-js 定时器
  8. 在PyCharm 软件中设置你的项目 使用的Python版本
  9. c++ 子类切勿重新定义父类 non-virtual函数
  10. python3-字典中的一些常用方法