JustPureH2O @ 2024-08-08 14:33:51
搜集了讨论区出现的一些常见错误,加上我个人犯的错误,整理而成的快速检查清单:
pushdown
部分:
if (tree[idx].tag)
这样的语句,而是 if (tree[idx].tag >= 0)
(true
)pushup
部分:
数值查询部分:
pushdown
1
的个数时选择返回数字,那么请用 if (l <= mid) return findLeft
的形式;如果你查询最大连续数量时返回一个线段树结构体,那么请用 if (l > mid) return findRight
区间修改部分:
pushdown
return
pushup
建树部分:
return
mid
的计算方式可能略有不同主函数/全局定义部分:
build
祝AC
by JustPureH2O @ 2024-10-05 07:57:50
@H17 上面都是我遇见过的比较逆天的错误,欢迎补充
by _H17_ @ 2024-10-05 08:19:37
@JustPureH2O 比如说连续0和连续1只用前后缀和拼接更新,中间的都丢了的这种逆天
by JustPureH2O @ 2024-10-05 11:51:04
@H17 确实,我想起来了,我也犯过
by _H17_ @ 2024-10-08 23:06:43
@JustPureH2O 再补一个:把普通线段树当主席树,修改写if-else
by ZRJ_ @ 2024-10-09 09:14:23
%%%
by yzc358230151 @ 2024-11-26 09:41:53
补充:
如果使用重载operator+以在查询和pushup时使用,注意拼合时“mid”=左node.r而非