void change(LL u,LL x,LL y,LL k){
if(x>tr[u].r || y<tr[u].l) return;
if(x<=tr[u].l&&tr[u].r<=y)
{
tr[u].sum+=(tr[u].r-tr[u].l+1)*k;
tr[u].add+=k;
return;
}
pushdown(u);
change(lc,x,y,k);
change(rc,x,y,k);
pushup(u);
}
if(x>tr[u].r || y<tr[u].l) return;
为什么要处理这里,而线段树那题不用?