原题传送门

就是裸RMQ啊。。

求区间最大值和区间最小值,一看就像RMQ,当然线段树貌似也可以。

至于算法嘛。自己学~(好吧,放个传送门。。。

然后就是最后把maxsum-minsum就好啦233~

时间效率:预处理O(N)查找O(1)

是不是很快~

下面贴代码

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,q;
int a,b;
int maxsum,minsum;
int maxn[][];
int num[];
int minn[][];
void RMQ(int s)
{
for(int j=;j<=;j++)
for(int i=;i<=n;i++){
if(i+(<<j)-<=n)
{
maxn[i][j]=max(maxn[i][j-],maxn[i+(<<(j-))][j-]);
minn[i][j]=min(minn[i][j-],minn[i+(<<(j-))][j-]);
}
}
}
int main(){
scanf("%d%d",&n,&q);
for(int i=;i<=n;i++)
{
scanf("%d",&num[i]);
maxn[i][]=minn[i][]=num[i];
}
RMQ(n);
for(int i=;i<=q;i++)
{
scanf("%d%d",&a,&b);
int k=(int)(log(b-a+1.0)/log(2.0));
maxsum=max(maxn[a][k],maxn[b-(<<k)+][k]);
minsum=min(minn[a][k],minn[b-(<<k)+][k]);
printf("%d\n",maxsum-minsum);
}
}

最新文章

  1. Android 两个activity生命周期的关系
  2. 关于Ruby常用语法案例累积
  3. Permission denied:multiarray.cp35-win_amd64.pyd(tensorflow0.12.0在windows下安装)
  4. ios 使用xib时,在UIScrollView中添建内容view时,使用约束的注意
  5. (23)odoo中的domain表达式
  6. 每天一个小算法(Heapsort)
  7. python常用函数之--求绝对值函数:abs(x)
  8. SpringMVC源码阅读(一)
  9. JavaScript 滚动页面到指定元素位置
  10. vue+webpack一些知识
  11. JavaScript算法描述(一)
  12. Bar Codes
  13. bzoj1977
  14. .NET CORE微服务中CONSUL的相关使用
  15. Android 自定义 View 绘制
  16. minIni: A minimal INI file parser
  17. Bootstrap媒体对象
  18. C# 网络常用操作类NetHelper.cs
  19. Ruby学习笔记1 -- 基本语法和数据类型, Class
  20. hdfs线上修改 nameserivce

热门文章

  1. idea debug启动项目慢或者启动不了
  2. acm总结
  3. 直接选择排序&amp;堆排序
  4. Postman-简单使用(1)
  5. javascript类式继承模式#4——共享原型
  6. DOS程序员手册(二)
  7. Python导出sql语句结果到Excel
  8. NOIP2018 集训(三)
  9. Python全栈工程师(多继承、函数重写)
  10. PAT——甲级1046S:shortest Distance