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 ...
 
随机推荐
- Confluence 6 修改站点标题
			
站点标题是在浏览器的标题栏中显示的.在默认的情况下,标题被显示为 Confluence. 希望修改你站点的标题: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration ...
 - Android CTS Test
			
什么是CTS测试?了解这个问题前,我们先来搜索了解一遍“Google GMS 认证”.GMS全称为GoogleMobile Service,即谷歌移动服务.说白了GMS其实就是一系列谷歌的应用集合.谷 ...
 - checkbox 选中的id拼接长字符串
			
需求描述:为了做一个批量操作,需要获取到checkbox选中的项的id,并且把选中的id拼接成字符串. 解决思路:先获取到checkbox选中项,然后拼接.(这tm不废话么),问题的关键就是获取che ...
 - bzoj1977次小生成树(重要)
			
#include<cstdio> #include<iostream> #include<cstring> #include<queue> #inclu ...
 - HTML添加图像和超链接
			
添加图像 <img src="图像的文件地址" alt="加载失败" height="350" width="350&quo ...
 - C++ Primer 笔记——union
			
1.union是一种特殊的类.一个union可以有多个数据成员,但是在任意时刻,只有一个数据成员可以有值.当我们给union的某个成员赋值之后,该union的其他成员就变成未定义的状态了.分配给一个u ...
 - Unet 项目部分代码学习
			
github地址:https://github.com/orobix/retina-unet 主程序: ################################################ ...
 - 来一个使用sysbench测试cpu性能的简单脚本
			
#!/bin/bash for ((i=1; i<16; i++)); do sysbench cpu run --cpu-max-prime=10000 --threads=4 --time= ...
 - webpack学习笔记--配置devServer
			
devServer 1-6 使用DevServer 介绍过用来提高开发效率的 DevServer ,它提供了一些配置项可以改变 DevServer 的默认行为. 要配置 DevServer ,除了在配 ...
 - iTOP4412环境搭建:arm-linux-gcc: 没有那个文件或目录
			
系统:vmware下的ubuntu14.04 对于iTOP4412自己搭建环境,在source /root/.bashrc后发现还是没有正常,调用arm-linux-gcc -v提示没有那个文件或目录 ...