警钟撅烂:关于锣鼓深进代码自己写后50pts
查看原帖
警钟撅烂:关于锣鼓深进代码自己写后50pts
706209
[丘李]Chilllee楼主2023/10/13 12:25

由于模板线段树的 wuw_u 维护的是一个区间和。在区间查询时,当判断 outofrange(l,r,L,R)outofrange(l,r,L,R) 为真,会返回 00 ,但是由于此题维护的是最大值,返回 00 可能会导致 00 比 wuw_u 大的情况发生,进而使区间最大值为负数时无法维护。
故而,当 outofrange(l,r,L,R)outofrange(l,r,L,R) 为真,应该返回 −INF-INF 而非 00。

ll qjcx(int u,int l,int r,int L,int R){
    if(inrange(l,r,L,R))
        return w[u];
    else if(outofrange(l,r,L,R))return -INF; //!!
    else {
    int mid=(l+r)>>1;
    pushdown(u,l,r);
    return max( qjcx(u*2,l,mid,L,R) , qjcx(u*2+1,mid+1,r,L,R) );
    }   
}
2023/10/13 12:25
加载中...