上传子树大小时,记得加上自己。
split和 merge 都要上传子树大小。
split
merge
所有操作完了以后都要把拆开的树合并回去。
所有的 merge 都要有变量接受返回的根节点,不存在不需要返回值的合并。
4 号操作中区分 tr[id].size 和 tr[ls].size。
tr[id].size
tr[ls].size
删除操作中,第二次拆分的根节点是拆出来的左子树,不是原先的根节点。
Tips:如果出现 TLE/MLE 多半是树建错了(比如建出了一个自环),导致无限递归。
TLE/MLE
其他常见错误欢迎补充。