警示后人 - 线段树做法中 `push_up()` 函数的常见误区

P2572 [SCOI2010] 序列操作

escapist404 @ 2023-07-02 21:19:18

  1. 注意在 push_up() 函数中,当前区间最大子段的来源应当是左儿子的区间最大子段右儿子的区间最大子段以及左儿子的后缀和右儿子的前缀,而不是左儿子的前缀,右儿子的后缀以及左儿子的后缀和右儿子的前缀。

  2. p[x] = push_up(p[ls(x)], p[rs(x)]); 而不是 p[x] = push_up(p[rs(x)], p[ls(x)];

  3. 注意覆盖标记和取反标记的优先级。先传递覆盖标记,再传递取反标记。


by noisynoob @ 2023-10-05 14:22:02

求问第2点有什么区别和作用吗?


上一页 |