zoukankan      html  css  js  c++  java
  • POJ

    ST表模版

    #include<cstdio>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    #define MAXN 50000+10
    #define LOG 20
    #define pii pair<int,int>
    using namespace std;
    int dmax[MAXN][LOG];
    int dmin[MAXN][LOG];
    int n;
    int a[MAXN];
    void init(){
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            dmax[i][0]=dmin[i][0]=a[i];
        }
        for(int j=1;j<LOG;j++){
            for(int i=1;i<=n;i++){
                if(i+(1<<j)-1>n){
                    break;
                }
                dmax[i][j]=max(dmax[i][j-1],dmax[i+(1<<(j-1))][j-1]);
                dmin[i][j]=min(dmin[i][j-1],dmin[i+(1<<(j-1))][j-1]);
            }
        }    
    }
    int RMQ(int x,int y){
        int len=y-x+1;
        int k=(int)(log(1.0*len)/log(2));
        k=max(k-2,0);
        while((1<<(k+1))<=len)k++;
        int T1=max(dmax[x][k],dmax[y-(1<<k)+1][k]);
        int T2=min(dmin[x][k],dmin[y-(1<<k)+1][k]);
        return (T1-T2);
    }
    int main()
    {
    //    freopen("data.in","r",stdin);
        int T;
        scanf("%d%d",&n,&T);
        init();
        while(T--){
            int x,y;scanf("%d%d",&x,&y);
            printf("%d
    ",RMQ(x,y));
        }
        return 0;
    }
  • 相关阅读:
    数组
    字符对象的方法
    事件
    判断数据类型
    数据类型和变量
    语法
    快速入门
    JavaScript简介
    Spring init-method和destroy-method属性的使用
    spring3后提供了的context:property-placeholder/元素
  • 原文地址:https://www.cnblogs.com/w-h-h/p/7894892.html
Copyright © 2011-2022 走看看