escapist404 @ 2023-07-02 21:19:18
注意在 push_up()
函数中,当前区间最大子段的来源应当是左儿子的区间最大子段,右儿子的区间最大子段以及左儿子的后缀和右儿子的前缀,而不是左儿子的前缀,右儿子的后缀以及左儿子的后缀和右儿子的前缀。
p[x] = push_up(p[ls(x)], p[rs(x)]);
而不是 p[x] = push_up(p[rs(x)], p[ls(x)];
。
注意覆盖标记和取反标记的优先级。先传递覆盖标记,再传递取反标记。
by 西瓜nd @ 2023-07-02 21:31:08
谢谢!
by Zimo_666 @ 2023-07-02 21:33:57
谢谢
by oiyang @ 2023-07-03 07:31:35
好的
by mztech @ 2023-07-09 15:20:45
覆盖标记和取反标记为什么要同时存在
by incra @ 2023-07-10 15:12:32
@mztech 否则你怎么支持两种操作?
by mztech @ 2023-07-10 16:06:22
@incra
要添加反标记时,若存在覆盖标记,直接将覆盖标记取反
添加覆盖标记时,去除反标记
by incra @ 2023-07-10 16:11:12
@mztech 有先后之分啊,还有操作之间的影响。
by mztech @ 2023-07-10 19:22:12
@incra
两种标记在每个结点不用同时存在
by a16_ @ 2023-07-30 10:12:19
@mztech 正确的
by HYX1124 @ 2023-08-01 14:33:44
感谢!