★★   输入文件:lineup.in   输出文件:lineup.out   简单对比
时间限制:4 s   内存限制:128 MB

题目描述

农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按同样的顺序站好。一日,农夫约翰决定为奶牛们举行一个“终极飞盘”比赛。为简化问题,他将从奶牛队列中选出一个连续区间来进行游戏。不过,参加游戏的奶牛要玩的开心的话就不能在身高上差距太大。

农夫约翰制定了 Q (1 ≤ Q ≤ 200,000) 个预定的参赛组,给出它们的身高 (1 ≤ 身高 ≤ 1,000,000)。对每个参赛组,他需要你帮助确定组中最高牛和最低牛的身高差。

输入格式

  • 第 1 行: 两个空格隔开的整数,N 和 Q。
  • 第 2..N+1 行: 第 i+1 行包含一个整数表示第 i 头牛的身高。
  • 第 N+2..N+Q+1 行: 两个整数 A 和 B(1 ≤ A ≤ B ≤ N),表示一个从 A 到 B 的参赛组区间。

输出格式

  • 第 1..Q 行: 每行包含一个整数来表示区间上最大身高差。

样例输入

6 3
1
7
3
4
2
5
1 5
4 6
2 2

样例输出

6
3
0

裸ST表

屠龙宝刀点击就送

#include <cstdio>
#include <cmath>
#define N 50005 int n,q,a[N],maxv[N][],minv[N][];
inline int max(int a,int b) {return a>b?a:b;}
inline int min(int a,int b) {return a>b?b:a;}
void rmq_init()
{
for(int i=;i<=n;++i) maxv[i][]=minv[i][]=a[i];
int logn=(int)(log((double)n)/log(2.0));
for(int j=;j<=logn;++j)
{
for(int i=;i<=n;++i)
{
if(i+(<<j)-<=n)
maxv[i][j]=max(maxv[i][j-],maxv[i+(<<(j-))][j-]),
minv[i][j]=min(minv[i][j-],minv[i+(<<(j-))][j-]);
}
}
}
inline int rmq_max(int l,int r)
{
int logn=(int)(log((double)r-l+)/log(2.0));
return max(maxv[l][logn],maxv[r-(<<logn)+][logn]);
}
inline int rmq_min(int l,int r)
{
int logn=(int)(log((double)r-l+)/log(2.0));
return min(minv[l][logn],minv[r-(<<logn)+][logn]);
}
int main(int argc,char *argv[])
{
freopen("lineup.in","r",stdin);
freopen("lineup.out","w",stdout);
scanf("%d%d",&n,&q);
for(int i=;i<=n;++i) scanf("%d",&a[i]);
rmq_init();
for(int l,r;q--;)
{
scanf("%d%d",&l,&r);
printf("%d\n",rmq_max(l,r)-rmq_min(l,r));
}
return ;
}

最新文章

  1. No Spring WebApplicationInitializer types detected on classpath。启动时不报错,但是页面打不开。
  2. 实现断点续传的FTP下载类(支持多线程多任务下载)
  3. spark2.0.1 安装配置
  4. centos 安装rmagick 2.13.4出错
  5. IDEA集成MAVEN 报错
  6. Oracle SQL基本操作
  7. 深入浅出话VC++(3)——VC++实现绘图操作
  8. 移动APP的IM后台架构浅析
  9. 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
  10. js 格式化数字
  11. 提取数字、英文、中文、过滤重复字符等SQL函数(含判断字段是否有中文)
  12. python分页和session和计算时间差
  13. python中的lambda表达
  14. Java学习笔记六(I/O流)
  15. os即时通讯客户端开发之-mac上安装MySQL
  16. bzoj1047-理想的正方形(二维单调队列)
  17. UVA 11090 - Going in Cycle!!(Bellman-Ford)
  18. 【ASP.NET Core】如何隐藏响应头中的 “Kestrel”
  19. [angularjs] angularjs系列笔记(二)指令
  20. java递归算法提前返回值带出

热门文章

  1. CodeForces - 124B-Permutations(DFS)
  2. codeforces 985C Liebig&#39;s Barrels(贪心)
  3. 2016&quot;百度之星&quot; - 资格赛(Astar Round1) A
  4. Photoshop在网页设计中的应用与方法
  5. 逐行创建、读取并写入txt(matlab) &amp;&amp; 生成文件夹里文件名的.bat文件
  6. Vue.js-----轻量高效的MVVM框架(九、组件利用Props传递数据)
  7. Junit使用过程中需要注意的诡异bug以及处理办法
  8. 利用COM组件实现对WORD书签处写入值
  9. jquery validation yyyy-MM-dd格式日期在ie中无法验证通过
  10. Win2D 官方文章系列翻译 - 像素格式