这是我的Add函数(Add 函数是在下传标记的时候给儿子节点打上标记。):
void Add(int &u, LL x) {
if (!u) {
return;
}
w[u].tag = w[u].tag * x % kM, w[u].s = w[u].s * x % kM;
}
但这样就会RE:
void Add(int &u, LL x) {
!u && (u = ++tot);
w[u].tag = w[u].tag * x % kM, w[u].s = w[u].s * x % kM;
}
RE原因可能是节点个数太多了。
我的问题是:为什么动态开点线段树在这题中下传标记如果没有子节点直接跳过不会有问题?