线段树的两种查询方式

来源:互联网 发布:mysql 5.7 json 函数 编辑:程序博客网 时间:2024/06/05 17:23
int query(int l,int r,int id,int ll,int rr){    if(ll<=l&&r<=rr)    {        return tree[id].maxn;    }    int ans=-1;    int mid=(l+r)>>1;    if(mid>=ll)    {        ans=max(ans,query(l,mid,id<<1,ll,rr));    }    if(mid<rr)        ans=max(ans,query(mid+1,r,id<<1|1,ll,rr));    return ans;}int query(int l,int r,int id,int ll,int rr){    if(ll==l&&r==rr)    {        return tree[id].maxn;    }    int ans=-1;    int mid=(l+r)>>1;    if(mid>=rr)        ans=max(ans,query(l,mid,id<<1,ll,rr));    else if(mid<ll)        ans=max(ans,query(mid+1,r,id<<1|1,ll,rr));    else         ans=max(query(l,mid,id<<1,ll,mid),query(mid+1,r,id<<1|1,mid+1,rr));    return ans;}

0 0
原创粉丝点击