如题
change(p) 是 tree[p].change 代表覆盖标记
addj(p) 是 tree[p].addj 代表加法标记
inline void coverdown(int p) {
int p2_l = p << 1;
int p2_r = p << 1 | 1;
if (change(p) != INF) {
change(p2_l) = change(p);
change(p2_r) = change(p);
maxx(p2_l) = change(p);
maxx(p2_r) = change(p);
addj(p2_l) = 0;
addj(p2_r) = 0;
change(p) = INF;
}
}
如果我在注释那里写了addj(p) = 0;会导致7 8 9 10数据点全错掉
删去了就可以ac
我实在想不通这是为什么 这有什么影响阿? 求助qaq
两次的提交记录:
ac:https://www.luogu.com.cn/record/198566681
wa:
https://www.luogu.com.cn/record/198567910
我其实觉得反正要覆盖 所以给加法清零了没关系 但是却错了??苦思冥想也想不出来