线段树相关知识点

线段树实现功能:

区间查找和更新

时间复杂度:

更新:O(logn)
查找:O(logn)

线段树内存需要开四倍大小,切记!!!

为什么需要开到四倍?

https://www.cnblogs.com/FengZeng666/p/11446827.html

理论上是2n-1的空间,但是你递归建立的时候当前节点为r,那么左右孩子分别是2*r,2*r+1,
此时编译器并不知道递归已结束,因为你的结束条件是在递归之前的,所以编译器会认为下标访问出错,也就是空间开小了,应该再开大2倍。
有时候可能你发现开2,3倍的空间也可以AC,那只是因为测试数据并没有那么大。
原文地址:https://www.cnblogs.com/OFSHK/p/11997668.html