题意:给你一组值,然后询问某个区间的最大值和最小值得差
分析:因为没有更新,所以只需要查找即可,节点保存一个最大值最小值就行了
******************************************************************
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define Lson root<<1,L,tree[root].Mid()
#define Rson root<<1|1,tree[root].Mid()+1,R const int maxn = ;
const int oo = 0xfffffff; struct Tree
{
    int L, R, MaxH, MinH;
    int Mid(){return (L+R)/;}
}tree[maxn*];
int High[maxn], Max, Min; void Build(int root, int L, int R)
{
    tree[root].L = L, tree[root].R = R;     if(L == R)
    {
        tree[root].MaxH = tree[root].MinH = High[L];
        return ;
    }     Build(Lson);
    Build(Rson);     tree[root].MaxH = max(tree[root<<].MaxH, tree[root<<|].MaxH);
    tree[root].MinH = min(tree[root<<].MinH, tree[root<<|].MinH);
}
void Query(int root, int L, int R)
{
    if(tree[root].L == L && tree[root].R == R)
    {
        Max = max(tree[root].MaxH, Max);
        Min = min(tree[root].MinH, Min);         return ;
    }     if(R <= tree[root].Mid())
        Query(root<<, L, R);
    else if(L > tree[root].Mid())
        Query(root<<|, L, R);
    else
    {
        Query(Lson);
        Query(Rson);
    }
} int main()
{
    int N, M;     while(scanf("%d%d", &N, &M) != EOF)
    {
        int i, l, r;         for(i=; i<=N; i++)
            scanf("%d", &High[i]);
        Build(, , N);         while(M--)
        {
            Max = -oo, Min = oo;
            scanf("%d%d", &l, &r);
            Query(, l, r);             printf("%d\n", Max-Min);
        }
    }     return ; } 

G - Balanced Lineup - poj3264(区间查询)的更多相关文章

  1. G - Balanced Lineup

    G - Balanced Lineup POJ - 3264 思路:水题,线段树的基本操作即可. #include<cstdio> #include<cstring> #inc ...

  2. Balanced Lineup poj3264 线段树

    Balanced Lineup poj3264 线段树 题意 一串数,求出某个区间的最大值和最小值之间的差 解题思路 使用线段树,来维护最大值和最小值,使用两个查询函数,一个查区间最大值,一个查区间最 ...

  3. G - Balanced Lineup POJ - 3264 线段树最大最小值区间查询模版题

    题意 给出一个序列  每次查询区间的max-min是多少 思路:直接维护max 和min即可  写两个query分别查最大最小值 #include<cstdio> #include< ...

  4. Balanced Lineup -POJ3264

    题意: 告诉你n头奶牛的高度,然后给你一个区间,你需要求出这个区间最高的奶牛与最矮的奶牛之间相差多少 链接:http://poj.org/problem?id=3264 思路: 线段树区间查询,用两个 ...

  5. ST表模板 Balanced Lineup POJ3264

    http://poj.org/problem?id=3264 题意 rmq max min之差 模板: #define _CRT_SECURE_NO_WARNINGS #include<cmat ...

  6. 洛谷 P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维)

    P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维) 前言 题目链接 本题作为一道Stl练习题来说,还是非常不错的,解决的思维比较巧妙 算是一道不错的题 ...

  7. Balanced Lineup(树状数组 POJ3264)

    Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 40493 Accepted: 19035 Cas ...

  8. poj3264 - Balanced Lineup(RMQ_ST)

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 45243   Accepted: 21240 ...

  9. POJ3264 Balanced Lineup

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 44720   Accepted: 20995 ...

随机推荐

  1. 常用 cmd 命令

    msconfig-------系统配置实用程序 mspaint--------画图板 devmgmt.msc--- 设备管理器 diskmgmt.msc---磁盘管理实用程序 services.msc ...

  2. jQuery创建ajax关键词数据搜索

    在web开发过程当中,我们经常需要在前台页面输入关键词进行数据的搜索,我们通常使用的搜索方式是将搜索结果用另一个页面显示,这样的方式对于搭建高性能网站来说不是最合适的,今天给大家分享一下如何使用 jQ ...

  3. markdown 简明语法

    今天同事聊到markdown用法 之前不怎么了解  先把网上的建明语法贴出来 以备后用. 基本符号 *,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号 空白行表示另起一个段落 `是 ...

  4. 关于myeclipse中导入的项目修改项目名使得发布到tomcat访问路径正确

    我新的项目基于旧的的项目,在Myeclipse8.6里我复制了一个,但是在部署到tomcat7.0时部署过去的文件夹名还是原来的旧项目名,不是新的,但里面内容为新项目,是不是什么地方没有改.求救各位高 ...

  5. 报错:ORA-02287: 此处不允许序号

    CREATE TABLE MY_TAB (N1 NUMBER(5),N2 DATE);          SELECT  * FROM MY_TAB;          CREATE SEQUENCE ...

  6. UIImageView添加边框和阴影

    - (void)viewDidLoad { [super viewDidLoad]; //添加显示 UIImage *image = [UIImage imageNamed:@"0_wang ...

  7. Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view...

    Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tabl ...

  8. TCP/IP-IP

    A contented mind is a perpetual feast. "知足长乐" 参考资料:TCP/IP入门经典 (第五版) TCP/IP详解 卷一:协议 一.简介 IP ...

  9. OpenGL画图旋转

    #include<gl/glut.h>#include<gl/GL.h>#include<gl/GLU.h>#include<math.h>#inclu ...

  10. javascript获取对象宽度和高度

    标签元素的宽高值获取//绝对宽度Obj.offsetWidth//绝对高度Obj.offsetHeight 以下是获取窗口对象的宽高值.clientHeight   获取对象的高度,不计算任何边距.边 ...