无论是B站的视频,还是题解,还是算法竞赛白皮书,都写到了查找函数query,但是如果父节点p的左右边界都相等的话,却没有相应的特殊处理,这会导致无限递归下去(至少在我这边会这样)
public static int query(int l,int r,int p,int pl,int pr)//查询区间和
{
if(l>=pl&&r>=pr)
{
return tree[p];
}
push_down(p,pl,pr);
int mid=(pl+pr)>>1;
int sum=0;
if(l<=mid)sum+=query(l,r,(p<<1),pl,mid);
if(r>mid)sum+=query(l,r,(p<<1|1),mid+1,pr);
return sum;
}
```