哦,那个`modify`是看错题,以为要在线之后写的。
后来发现不用在线之后就注释掉了,应该没问题吧QwQ
by 云浅知处 @ 2020-07-09 18:09:35
[$\color{red}\text{借楼宣传一下}$](https://www.luogu.com.cn/discuss/show/236411)
by 翼德天尊 @ 2020-07-09 18:16:42
互相借楼还行/fad
by _5011_ @ 2020-07-09 18:43:22
@[云浅知处](/user/307453) 您的代码在合并空节点的时候sum会错吧
by _5011_ @ 2020-07-09 18:50:47
```cpp
Node tmp=Node(-2333333333,-2333333333,-2333333333,-2333333333),t1=Node(-2333333333,-2333333333,-2333333333,-2333333333),t2=Node(-2333333333,-2333333333,-2333333333,-2333333333);
```
$\downarrow$
```cpp
Node tmp=Node(-2333333333,-2333333333,-2333333333,0),t1=Node(-2333333333,-2333333333,-2333333333,0),t2=Node(-2333333333,-2333333333,-2333333333,0);
```
by _5011_ @ 2020-07-09 18:51:25
@[Zephyr_](/user/91127) 这个我也想到了,但是修改之后貌似[没毛用](https://www.luogu.com.cn/record/34984939)(
修改后的代码:(只放查询那部分)
```cpp
inline Node query(LL l,LL r,LL ql,LL qr,LL o){
if(l<=ql&&qr<=r){
return d[o];
}
LL mid=(ql+qr)>>1;
Node tmp=Node(-2333333333,-2333333333,-2333333333,-2333333333),t1=Node(-2333333333,-2333333333,-2333333333,-2333333333),t2=Node(-2333333333,-2333333333,-2333333333,-2333333333);
bool f1=0,f2=0;
if(l<=mid){
t1=query(l,r,ql,mid,lson(o));
f1=1;
}
if(r>mid){
t2=query(l,r,mid+1,qr,rson(o));
f2=1;
}
tmp.p=max(max(t1.p,t2.p),t1.r+t2.q);
tmp.q=max(t1.q,t1.sum+t2.q);
tmp.r=max(t2.r,t2.sum+t1.r);
if(f1&&f2)tmp.sum=t1.sum+t2.sum;
else if(f1&&(!f2))tmp.sum=t1.sum;
else if(f2&&(!f1))tmp.sum=t2.sum;
else tmp.sum=0;
return tmp;
}
```
by 云浅知处 @ 2020-07-09 18:54:30
@[Zephyr_](/user/91127) 照您这么改[也WA掉了](https://www.luogu.com.cn/record/34985013)....../kk/kk
by 云浅知处 @ 2020-07-09 18:56:59
不要用这么鬼畜的写法。
把它和pushup合在一起
by 辰星凌 @ 2020-07-09 19:08:16
还有,不要瞎jb定义极小值然后合并,像这样写就可以过了:
```cpp
inline Node query(LL l,LL r,LL ql,LL qr,LL o){
if(l<=ql&&qr<=r){
return d[o];
}
LL mid=(ql+qr)>>1;
if(r<=mid)return query(l,r,ql,mid,lson(o));
if(l>mid)return query(l,r,mid+1,qr,rson(o));
Node tmp,t1=query(l,r,ql,mid,lson(o)),t2=query(l,r,mid+1,qr,rson(o));
tmp.p=max(max(t1.p,t2.p),t1.r+t2.q);
tmp.q=max(t1.q,t1.sum+t2.q);
tmp.r=max(t2.r,t2.sum+t1.r);
tmp.sum=t1.sum+t2.sum;
return tmp;
}
```
by 辰星凌 @ 2020-07-09 19:11:54
@[云浅知处](/user/307453)
by 辰星凌 @ 2020-07-09 19:12:06