我想用线段树维护区间最大子段和
mx是区间最大子段和
lmx是以l为端点的最大子段和
rmx是以r为终点的最大子段和
sum是区间和
下面这个合并的代码我没明白为啥要用&
然后const node & 这句啥意思
求大佬解答,谢谢
void merge(node &res, const node &l, const node &r) {
res.sum = l.sum + r.sum;
res.lmx = max(l.lmx, l.sum + r.lmx);
res.rmx = max(r.rmx, r.sum + l.rmx);
res.mx = max(max(l.mx, r.mx), l.rmx + r.lmx);
}