• 【POJ】3264 Balanced Lineup


     1 #include<cstdio>
     2 #define MAXN 50010
     3 #define INF 987654321
     4 int a[MAXN<<2],b[MAXN<<2];
     5 inline int MAX(int x,int y)
     6 {
     7     return x>y?x:y;
     8 }
     9 inline int MIN(int x,int y)
    10 {
    11     return x>y?y:x;
    12 }
    13 inline void PushUp(int rt)
    14 {
    15     a[rt]=MAX(a[rt<<1],a[rt<<1|1]);
    16     b[rt]=MIN(b[rt<<1],b[rt<<1|1]);
    17 }
    18 void Build(int L,int R,int rt)
    19 {
    20     if(L==R)
    21     {
    22         scanf("%d",&a[rt]);
    23         b[rt]=a[rt];
    24     }
    25     else
    26     {
    27         int mid=(L+R)>>1;
    28         Build(L,mid,rt<<1);
    29         Build(mid+1,R,rt<<1|1);
    30         PushUp(rt);
    31     }
    32 }
    33 int Big(int x,int y,int L,int R,int rt)
    34 {
    35     if(x<=L&&R<=y)
    36         return a[rt];
    37     int mid,ans;
    38     mid=(L+R)>>1;
    39     ans=-INF;
    40     if(mid>=x)
    41         ans=MAX(ans,Big(x,y,L,mid,rt<<1));
    42     if(y>mid)
    43         ans=MAX(ans,Big(x,y,mid+1,R,rt<<1|1));
    44     return ans;
    45 }
    46 int Small(int x,int y,int L,int R,int rt)
    47 {
    48     if(x<=L&&R<=y)
    49         return b[rt];
    50     int mid,ans;
    51     mid=(L+R)>>1;
    52     ans=INF;
    53     if(mid>=x)
    54         ans=MIN(ans,Small(x,y,L,mid,rt<<1));
    55     if(y>mid)
    56         ans=MIN(ans,Small(x,y,mid+1,R,rt<<1|1));
    57     return ans;
    58 }
    59 int main()
    60 {
    61     int n,q,x,y;
    62     while(~scanf("%d%d",&n,&q))
    63     {
    64         Build(1,n,1);
    65         while(q--)
    66         {
    67             scanf("%d%d",&x,&y);
    68             printf("%d\n",Big(x,y,1,n,1)-Small(x,y,1,n,1));
    69         }
    70     }
    71     return 0;
    72 }
    新博客:www.zhixiangli.com
  • 相关阅读:
    MySQLHA系列MHA(一)
    VS找不到约束
    Android开发被添加到桌面快捷方式
    Oracle查看和修改其最大的游标数
    Sde表结构分析
    SDE+ORACLE优化配置
    sqlplus常用命令
    ArcGIS 开发的一些知识学习点
    1.ireport基本使用
    java.net.ProtocolException: Exceeded stated content-length of: '13824' bytes
  • 原文地址:https://www.cnblogs.com/DrunBee/p/2511820.html
Copyright © 2020-2023  润新知