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;
    }
  • 相关阅读:
    写多了博客,就想沽名钓誉
    中医与DBA
    关于OneProxy推广
    使用分布式数据库集群做大数据分析之OneProxy
    不能使用tpcc-mysql测试OneProxy
    下三滥
    建立自己的客户关系网
    编译spock proxy
    胆子还是小了
    主流语言的异常处理对比
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12293878.html
Copyright © 2011-2022 走看看