标签:交集 node class size 开始 维数 查询 表示 长度
每个非叶结点所表示的结点$[a,b]$,左儿子表示区间$[a,\frac{a+b}{2}]$,右儿子表示的区间为$[\frac{a+b}{2}+1,b]$
叶子结点表示区间长度为1
struct CNode { int L,R; //区间起点和终点 XXXX ; //与区间[L,R]相关的数据 CNode * pLeft, * pRight; //左右孩子指针(可用idx替代) };
用一维数组存放线段树(idx)时,数组开到4n大可以确保不越界。
区间分解
如果不是,则:取$mid=\frac{L+R}{2}$
看要分解的区间与$[L,mid]$或$[mid+1,R]$哪个有交集,就进入哪个区间进行进一步分解,有可能两个区间都进入。
构建
标签:交集 node class size 开始 维数 查询 表示 长度
原文地址:https://www.cnblogs.com/yalphait/p/10199523.html