调了半天终于过了。。。虽然我不知道有没有人和我犯一样的智障错误但还是说一下:
如果你写了:
//add 和 mul 为加和乘的懒标记 if (add[p] > 0 || mul[p] > 1) { Pushdown(cl, cr, p); }
请注意 乘和加操作中可以有负数。
你应该写成:
//add 和 mul 为加和乘的懒标记 if (add[p] != 0 || mul[p] != 1) { Pushdown(cl, cr, p); }
或者你也可以把这个判断删掉。反正也慢不了多少。