zoukankan      html  css  js  c++  java
  • POJ

    题目链接

    线段树,求区间最大值减去区间最小值的值。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    
    const int N = 5e4 + 10;
    const int inf = 1e9 + 7;
    int n,q;
    
    #define mid ((l + r) >> 1)
    #define ls (nod << 1)
    #define rs (nod << 1 | 1)
    #define lson ls,l,mid
    #define rson rs,mid + 1,r
    
    int mx[N << 2],mi[N << 2];
    void build(int nod,int l,int r){
        if(l == r) { scanf("%d",&mx[nod]); mi[nod] = mx[nod]; return ; }
    	build(lson); build(rson);
    	mx[nod] = max(mx[ls],mx[rs]); mi[nod] = min(mi[ls],mi[rs]);
    }
    int query(int nod,int l,int r,int ll,int rr,int pos){
        if(l > rr || r < ll) return pos ? -inf : inf;
        if(ll <= l && r <= rr) return pos ? mx[nod] : mi[nod];
        return pos ? max(query(lson,ll,rr,pos), query(rson,ll,rr,pos)) : min(query(lson,ll,rr,pos), query(rson,ll,rr,pos));
    }
    
    int main(){
        scanf("%d%d",&n,&q);
        build(1,1,n);
        while(q --){
    	    int l,r; scanf("%d%d",&l,&r);
    	    printf("%d
    ",query(1,1,n,l,r,1) - query(1,1,n,l,r,0));
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    js五种继承优缺点
    golang---panic/recover
    golang---应用OOM
    golang--- context
    常用工具及日常
    golang --- pipline
    golang 竞争---翻译
    深入golang之---goroutine并发控制与通信
    rpm打包
    k8s-operator指北
  • 原文地址:https://www.cnblogs.com/zzhzzh123/p/13401345.html
Copyright © 2011-2022 走看看