POJ 3264 Balanced Lineup 【线段树】
<题目链接>
题目大意:
求给定区间内最大值与最小值之差。
解题分析:
线段树水题,每个节点维护两个值,分别代表该区间的最大和最小值即可。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define Lson rt<<1,l,mid
#define Rson rt<<1|1,mid+1,r
#define INF 0x3f3f3f3f
+;
int n,m;
int a[N];
struct Tree{
int mn,mx;
}tr[N<<];
void Pushup(int rt){
tr[rt].mx=max(tr[rt<<].mx,tr[rt<<|].mx);
tr[rt].mn=min(tr[rt<<].mn,tr[rt<<|].mn);
}
void build(int rt,int l,int r){
if(l==r){
tr[rt].mn=tr[rt].mx=a[l];
return;
}
;
build(Lson);
build(Rson);
Pushup(rt);
}
int query(int rt,int l,int r,int L,int R,int c){
if(L<=l&&r<=R){
if(!c)return tr[rt].mn;
else return tr[rt].mx;
}
;
int mxval=-INF,mnval=INF;
if(L<=mid){
if(!c)mnval=min(mnval,query(Lson,L,R,c)); //注意这里最大和最小都是向左儿子递归
else mxval=max(mxval,query(Lson,L,R,c));
}
if(R>mid){
if(!c)mnval=min(mnval,query(Rson,L,R,c));
else mxval=max(mxval,query(Rson,L,R,c));
}
if(!c)return mnval;
else return mxval;
}
int main(){
while(scanf("%d%d",&n,&m)!=EOF){
;i<=n;i++){
scanf("%d",&a[i]);
}
build(,,n);
;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
,,n,u,v,);
,,n,u,v,);
printf("%d\n",mx-mn);
}
}
;
}
2018-09-23
POJ 3264 Balanced Lineup 【线段树】的更多相关文章
- [POJ] 3264 Balanced Lineup [线段树]
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 34306 Accepted: 16137 ...
- poj 3264 Balanced Lineup(线段树、RMQ)
题目链接: http://poj.org/problem?id=3264 思路分析: 典型的区间统计问题,要求求出某段区间中的极值,可以使用线段树求解. 在线段树结点中存储区间中的最小值与最大值:查询 ...
- POJ 3264 Balanced Lineup 线段树RMQ
http://poj.org/problem?id=3264 题目大意: 给定N个数,还有Q个询问,求每个询问中给定的区间[a,b]中最大值和最小值之差. 思路: 依旧是线段树水题~ #include ...
- POJ 3264 Balanced Lineup 线段树 第三题
Balanced Lineup Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line ...
- POJ 3264 Balanced Lineup (线段树)
Balanced Lineup For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the s ...
- POJ - 3264 Balanced Lineup 线段树解RMQ
这个题目是一个典型的RMQ问题,给定一个整数序列,1~N,然后进行Q次询问,每次给定两个整数A,B,(1<=A<=B<=N),求给定的范围内,最大和最小值之差. 解法一:这个是最初的 ...
- 【POJ】3264 Balanced Lineup ——线段树 区间最值
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 34140 Accepted: 16044 ...
- Poj 3264 Balanced Lineup RMQ模板
题目链接: Poj 3264 Balanced Lineup 题目描述: 给出一个n个数的序列,有q个查询,每次查询区间[l, r]内的最大值与最小值的绝对值. 解题思路: 很模板的RMQ模板题,在这 ...
- POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 53703 Accepted: 25237 ...
- POJ 3264 Balanced Lineup 【ST表 静态RMQ】
传送门:http://poj.org/problem?id=3264 Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total S ...
随机推荐
- 如何在cmd中执行python文件
打开cmd终端 输入python 然后再输入要执行文件的路径 就可以把python文件运行起来 ...
- java----微服务架构
参考文档 https://topsale.gitbooks.io/java-cloud-dubbo/content/ 单体应用: 项目的架构完完全全属于传统的 MVC 架构,所有的子系统都集成在一个很 ...
- python----常用功能
sintance和type class Foo(object): pass class Bar(Foo): pass obj = Bar() # isinstance用于判断,对象是否是指定类的实例 ...
- 一个简单的binlog恢复测试
日常的数据备份及恢复测试,是DBA工作重中之重的事情,所以要做好备份及测试,日常的备份常见有mysqldump+binlog备份.xtrabackup+binlog备份,无论那一种,几乎都少不了对bi ...
- MySQL基于ROW格式的数据恢复
大家都知道MySQL Binlog 有三种格式,分别是Statement.Row.Mixd.Statement记录了用户执行的原始SQL,而Row则是记录了行的修改情况,在MySQL 5.6以上的版本 ...
- shiro配合html页面完成细粒化权限控制
shiro配合html页面完成细粒化权限控制 原创 2016年10月04日 12:02:34 标签: shiro / 框架 / 界面 / 权限 8924 shiro是现在非常普遍使用的java权限框架 ...
- 使用springboot actuator监控应用
微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题? ...
- Python推荐系统库--Surprise实战
一.使用movieLens数据集 from surprise import KNNBasic, SVD from surprise import Dataset from surprise impor ...
- 爬虫基础以及 re,BeatifulSoup,requests模块使用
爬虫基础以及BeatifulSoup模块使用 爬虫的定义:向网站发起请求,获取资源后分析并提取有用数据的程序 爬虫的流程 发送请求 ---> request 获取响应内容 ---> res ...
- SSD垃圾回收
A complete GC typically:includes four steps: selecting some blocks that contain somestale data as vi ...