我就是不听老人言……自己yy的模板果然出了问题……
这样的,我的写法里面必须push之后节点内的信息才是正确的
但是在modify中
注:#define lcq lc,l,mid #define rcq rc,mid+1,r
if (a <= mid) modify(lcq,wq,d);
if (b > mid) modify(rcq,wq,d);
upd(x);
碉堡了!可能只是递归到一边,然后另外一边没有push!真可怕!
所以应该改成
if (a <= mid) modify(lcq,wq,d); else push(lcq);
if (b > mid) modify(rcq,wq,d); else push(rcq);
upd(x);
或者在upd里面加上push(lcq);push(rcq); 反正都一样,这样大概常数小一些
一定不要忘啦