http://poj.org/problem?id=3264

题目大意:

给定N个数,还有Q个询问,求每个询问中给定的区间[a,b]中最大值和最小值之差。

思路:

依旧是线段树水题~

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=50000+10;
const int MAXM=MAXN<<2;
const int INF=0x3fffffff;
int maxv[MAXM],minv[MAXM],a[MAXN]; void build(int k,int L,int R)
{
if(L==R)
{
maxv[k]=a[L];
minv[k]=a[L];
}
else
{
int m=(L+R)>>1;
build(k<<1,L,m);
build((k<<1)+1,m+1,R);
maxv[k]=max(maxv[k<<1],maxv[(k<<1)+1]);
minv[k]=min(minv[k<<1],minv[(k<<1)+1]);
}
} int query_max(int k,int L,int R,int a,int b)
{
int ans=-INF;
if(a<=L && R<=b) return maxv[k];
else
{
int m=(L+R)>>1;
if(a<=m) ans=max(ans,query_max(k<<1,L,m,a,b));
if(m<b) ans=max(ans,query_max((k<<1)+1,m+1,R,a,b));
return ans;
}
} int query_min(int k,int L,int R,int a,int b)
{
int ans=INF;
if(a<=L && R<=b) return minv[k];
else
{
int m=(L+R)>>1;
if(a<=m) ans=min(ans,query_min(k<<1,L,m,a,b));
if(m<b) ans=min(ans,query_min((k<<1)+1,m+1,R,a,b));
return ans;
}
} int main()
{
int n,q;
while(~scanf("%d%d",&n,&q))
{
for(int i=1;i<=n;i++)
scanf("%d",&a[i]); build(1,1,n); for(int i=0;i<q;i++)
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",query_max(1,1,n,a,b)-query_min(1,1,n,a,b));
}
}
return 0;
}

最新文章

  1. Allegro之Enhance pad Entry(增强焊盘进入约束功能)的使用
  2. Cats(3)- freeK-Free编程更轻松,Free programming with freeK
  3. ueditor 百度编辑器,取消或自定义右键菜单
  4. idea使用心得(4)-踩过的坑
  5. spring笔记1 spring MVC的基础知识1
  6. hdu2612.。。。
  7. C++类编程(一)const的使用
  8. shell脚本 gawk语言 综采话单 对账 字段核对
  9. 阿里云:linux 一键安装web环境
  10. sqlserver2008 复制,镜像,日志传输及故障转移集群区别
  11. 文件/图片,批量上传【神器】--WebUploader
  12. evernote出现“Sync failed due to unexpected problem at server side”的问题
  13. spring集成quartz
  14. 随记一个C的时间加减
  15. 360路由器+花生壳实现外网访问SVN服务器
  16. 1076. Forwards on Weibo (30) - 记录层的BFS改进
  17. java 日志脱敏框架 sensitive-新版本0.0.2-深度拷贝,属性为对象和集合的支持
  18. 《DSP using MATLAB》Problem 6.7
  19. Linux启动一个服务后,服务的某个文件所在的目录下出现类似:systemd-private.xxxxxx的目录
  20. python简单实现队列和栈push、pop操作

热门文章

  1. DB2物化视图(Materialized Query Tables, MQT)
  2. CentOS 7.0yum安装MySQL
  3. 42.cnpm不是内部命令的解决方案:配置环境变量
  4. WHU 1470 Join in tasks 水题
  5. 谈一谈Nginx的强大
  6. 调用WCF出现的异常
  7. Swift视频教程,Swift千人学iOS开发编程语言
  8. RecipientsEditor-信息收件人输入框
  9. http 协议上传文件multipart form-data boundary 说明--转载
  10. 1.19 Python基础知识 - 软件目录开发规范及不同模块之间的调用