背景

神仙飞啊飞

描述

从前有个人名叫W and N and B,他有着天才般的记忆力,他珍藏了许多许多的宝藏。在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁能轻松回答出这个问题,便可以继承他的宝藏。题目是这样的:给你一大串数字(编号为1到N,大小可不一定哦!),在你看过一遍之后,它便消失在你面前,随后问题就出现了,给你M个询问,每次询问就给你两个数字A,B,要求你瞬间就说出属于A到B这段区间内的最大数。一天,一位美丽的姐姐从天上飞过,看到这个问题,感到很有意思(主要是据说那个宝藏里面藏着一种美容水,喝了可以让这美丽的姐姐更加迷人),于是她就竭尽全力想解决这个问题。BUT,她每次都以失败告终,因为这数字的个数是在太多了!于是她请天才的你帮他解决。如果你帮她解决了这个问题,可是会得到很多甜头的哦!

格式

输入格式

一个整数N表示数字的个数,接下来一行为N个数。第三行读入一个M,表示你看完那串数后需要被提问的次数,接下来M行,每行都有两个整数A,B。

输出格式

输出共M行,每行输出一个数。

样例1

样例输入1

6
34 1 8 123 3 2
4
1 2
1 5
3 4
2 3

样例输出1

34
123
123
8

提示

对于30%的数据,1<=N<=10000,1<=M<=100
对于100%的数据,1<=N<=200000,1<=M<=10000.

思路

st表;

f[i][j]表示从i开始,包含1<<j个元素的区间的区间最大值;

转移方程:f[i][j]=max_(f[i][j-1],f[i+(1<<j-1)][j-1];

查询(l,r):

p=log2(r-l+1);

max(l,r)=max_(f[l][p],f[r-(1<<p)+1][p]);

代码实现

 #include<cmath>
#include<cstdio>
const int maxn=2e5+;
inline int max_(int x,int y){return x>y?x:y;}
int n,m,l,a,b;
int f[maxn][];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i<<=) l++;
for(int i=;i<=n;i++) scanf("%d",&f[i][]);
for(int i=;i<l;i++) for(int j=;j<=n;j++)
if(j+(<<i-)<=n) f[j][i]=max_(f[j][i-],f[j+(<<i-)][i-]);
else f[j][i]=f[j][i-];
scanf("%d",&m);
for(int i=;i<=m;i++){
scanf("%d%d",&a,&b);
l=log2(b-a+);
printf("%d\n",max_(f[a][l],f[b-(<<l)+][l]));
}
return ;
}

最新文章

  1. linux socket编程实例
  2. jquery总结05-常用事件04-委托事件
  3. c语言编写的日历
  4. C#相关图书推荐
  5. thread跟Runnable实现多线程
  6. [C++] WinAES问题
  7. Ajax的get和post两种请求方式区别
  8. 使用 electron 做个播放器
  9. Java 小记 — RabbitMQ 的实践与思考
  10. Java:扩展后的赋值运算符(带强转功能)
  11. WPF 视频教程+笔记
  12. 前后端分离djangorestframework——ContentType组件表
  13. lua 的语法糖
  14. C# DataTable分页函数
  15. windows mysql主 Linux mysql 从 主从同步,读写分离
  16. thinkphp标签实现bootsrtap轮播carousel实例
  17. Core - Provide an easy way to store administrator and user model differences in a custom store (e.g., in a database)
  18. 批处理命令篇--配置免安装mysql
  19. python学习笔记——多进程间通信——Linux信号基础
  20. Jenkins 默认没有Launch agent via Java Web Start,该如何配置

热门文章

  1. 洛谷P2742 【模板】二维凸包
  2. Macbook air 上打开cocoscreator出错
  3. vue路由高级语法糖
  4. 在Eclipse中通过JDBC连接MySQL步骤,非常详细!
  5. Python3基础教程(十八)—— 测试
  6. Mac 查看端口情况
  7. Asp.Net Core 入门(四)—— Model、View、Controller
  8. python 与
  9. 监控java进程是否正常运行
  10. NOIp2018 提高组初赛试题参考答案