Balanced Lineup POJ - 3264
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAXN 50010
int n , q;
int h[MAXN];
struct Node{
int l;
int r;
int minNum;
int maxNum;
} tr[*MAXN];
void build(int l,int r,int u){
tr[u].l=l;
tr[u].r=r;
if(l==r)
{
tr[u].minNum=h[l];
tr[u].maxNum=h[l];
return;
}
int mid=l+r>>;
build(l ,mid,u<<);
build(mid+,r,u<<|);
tr[u].minNum=min(tr[u<<].minNum,tr[(u<<)+].minNum);
tr[u].maxNum=max(tr[u<<].maxNum,tr[(u<<)+].maxNum);
}
//查询最大值
int queryMax(int l,int r,int u){
if(tr[u].l==l&&tr[u].r==r)
return tr[u].maxNum;
int mid=tr[u].l+tr[u].r>>;
if(r<=mid)
return queryMax(l,r,u<<);
else if(l>mid)
return queryMax(l,r,u<<|);
else
return max(queryMax(l,mid,u<<),queryMax(mid+,r,(u<<)+));
}
//查询最小值
int queryMin(int l,int r,int u)
{
if(tr[u].l==l&&tr[u].r==r)
return tr[u].minNum;
int mid=tr[u].l+tr[u].r>>;
if(r<=mid)
return queryMin(l,r,u<<);
else if(l>mid)
return queryMin(l ,r,u<<|);
else
return min(queryMin(l,mid,u<<),queryMin(mid+,r,(u<<)+));
}
int main(){
while(scanf("%d%d",&n,&q)!=EOF)
{
for(int i=;i<=n;i++)
scanf("%d",&h[i]);
build(,n,);
int l,r;
for(int i=;i<q;i++){
scanf("%d%d",&l,&r);
cout<<queryMax(l,r,)-queryMin(l,r,)<<endl;
}
}
return ;
}
Balanced Lineup POJ - 3264的更多相关文章
- (线段树)Balanced Lineup --POJ --3264
链接: 对于POJ老是爆,我也是醉了, 链接等等再发吧! http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82832#problem/G 只 ...
- Day6 - H - Balanced Lineup POJ - 3264
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One d ...
- G - Balanced Lineup POJ - 3264 线段树最大最小值区间查询模版题
题意 给出一个序列 每次查询区间的max-min是多少 思路:直接维护max 和min即可 写两个query分别查最大最小值 #include<cstdio> #include< ...
- Gold Balanced Lineup - poj 3274 (hash)
这题,看到别人的解题报告做出来的,分析: 大概意思就是: 数组sum[i][j]表示从第1到第i头cow属性j的出现次数. 所以题目要求等价为: 求满足 sum[i][0]-sum[j][0]=sum ...
- Gold Balanced Lineup POJ - 3274
Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been abl ...
- poj 3264 Balanced Lineup (RMQ)
/******************************************************* 题目: Balanced Lineup(poj 3264) 链接: http://po ...
- G - Balanced Lineup
G - Balanced Lineup POJ - 3264 思路:水题,线段树的基本操作即可. #include<cstdio> #include<cstring> #inc ...
- POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 53703 Accepted: 25237 ...
- POJ - 3264——Balanced Lineup(入门线段树)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 68466 Accepted: 31752 ...
随机推荐
- Oracle笔记(1)--emp表查询(1)
(1)截取函数--TRUNC() 的用法 SELECT TRUNC(789.652) 截取小数, TRUNC(789.652,2) 截取两位小数, TRUNC(789.652,-2) 取整 FROM ...
- 三、 TCP(传输控制协议)
它建立在网际层协议(IP)提供的数据包传输技术之上,.TCP使应用程序可使用连续的数据进行通信.除非由于网络故障导致连接中断或冻结,TCP都能保证数据流完好地传输.而不会发生丢包 ,重包或是乱序的问题 ...
- 数据库连接池 —— Druid的简单使用
Druid不仅是一个数据库连接池,还包含一个ProxyDriver.一系列内置的JDBC组件库.一个SQL Parser.支持所有JDBC兼容的数据库,包括Oracle.MySql.Derby.Pos ...
- C++中STL库函数的基本运用
学了这么长时间的STL库,现在我觉得是有必要对过去的题目和所遇到的问题做一下整理了,以便于之后更好的展开练习: 一. 为什么要用STL库? 1.简单粗暴(省事). 2.便于解决复杂的问题(在贪心题目中 ...
- Jmeter之将测试结果导出到Excel
一:环境准备 1.下载jxl.jar这个jar包 2.下载好之后,放到Jmeter的安装路径下的lib目录下 3.jxl.jar的作用:完成对Excel的读写以及修改操作 如何利用jmter操作exc ...
- Linux相关知识笔记
Quagga要在linux下编译并配置运行,所有,学习一点linux的基础知识. 安装的Ubuntu,用户名linux,密码1 使能Ubuntu的IP转发功能,需要修改etc/sysctl.conf和 ...
- 排查 Kubernetes HPA 通过 Prometheus 获取不到 http_requests 指标的问题
部署好了 kube-prometheus 与 k8s-prometheus-adapter (详见之前的博文 k8s 安装 prometheus 过程记录),使用下面的配置文件部署 HPA(Horiz ...
- [MacOS]Sublime text3 安装(一)
官网地址 https://www.sublimetext.com/ 直接下载地址(MacOS) https://download.sublimetext.com/Sublime%20Text%20Bu ...
- CNN目标检测系列算法发展脉络——学习笔记(一):AlexNet
在咨询了老师的建议后,最近开始着手深入的学习一下目标检测算法,结合这两天所查到的资料和个人的理解,准备大致将CNN目标检测的发展脉络理一理(暂时只讲CNN系列部分,YOLO和SSD,后面会抽空整理). ...
- android button的selector
实现按钮的selector <?xml version="1.0" encoding="utf-8"?> <selector xmlns:an ...