if (l <= t[p].l && t[p].r <= r) { ans = max(ans, t[p].tmax); ans = max(ans, pre + t[p].lmax); pre = max(t[p].rmax, pre + t[p].sum); return; }
这是题解里 Ajwallet @Ajwallet 给出的做法,蒟蒻有点没看懂,pre 的实际含义是什么?这样做的完备性又是怎么保证的?