错误:
if (l <= mid)
modifyMod(lc, l, mid, p);
if (r > mid)
modifyMod(rc, mid + 1, r, p);
正确:
if (r <= mid)
modifyMod(lc, l, r, p);
else if (l > mid)
modifyMod(rc, l, r, p);
else {
modifyMod(lc, l, r, p);
modifyMod(rc, l, r, p);
}
- 确认是否到达叶子节点时使用了询问区间而不是线段树节点区间