zoukankan      html  css  js  c++  java
  • Balanced Lineup POJ

    #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[4*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>>1;
        build(l ,mid,u<<1);
        build(mid+1,r,u<<1|1);
        tr[u].minNum=min(tr[u<<1].minNum,tr[(u<<1)+1].minNum);
        tr[u].maxNum=max(tr[u<<1].maxNum,tr[(u<<1)+1].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>>1;
       if(r<=mid)
         return queryMax(l,r,u<<1);
       else if(l>mid)
         return queryMax(l,r,u<<1|1);
       else
         return max(queryMax(l,mid,u<<1),queryMax(mid+1,r,(u<<1)+1));
    }
    //查询最小值
    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>>1;
        if(r<=mid)
           return queryMin(l,r,u<<1);
        else if(l>mid)
           return queryMin(l ,r,u<<1|1);
        else
           return min(queryMin(l,mid,u<<1),queryMin(mid+1,r,(u<<1)+1));
    }
    int main(){
       while(scanf("%d%d",&n,&q)!=EOF)
       {
           for(int i=1;i<=n;i++)
              scanf("%d",&h[i]);
           build(1,n,1);
           int l,r;
           for(int i=0;i<q;i++){
              scanf("%d%d",&l,&r);      
              cout<<queryMax(l,r,1)-queryMin(l,r,1)<<endl;
           }
       }
       return 0;
    }
  • 相关阅读:
    DB-MySQL:MySQL 正则表达式
    DB-MySQL:MySQL 事务
    DB-MySQL:MySQL 索引
    DB-MySQL:MySQL 临时表
    DB-MySQL:MySQL 复制表
    DB-MySQL:MySQL 序列使用
    DB-MySQL:MySQL 处理重复数据
    DB-MySql:MySQL 及 SQL 注入
    mysql
    PHP+jQuery 注册模块的改进之一:验证码存入SESSION
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12293878.html
Copyright © 2011-2022 走看看