动态开点
我们在写线段树的时候,对于左右儿子常常是这样写的:
- 建树部分
void build(int id,int l,int r){
tree[id].l=l;
tree[id].r=r;
if(l==r) return;
int mid=(l+r)>>1;
build(id*2,l,mid);
build(id*2+1,mid+1,r);
pushup(id);
}
加载过慢请开启缓存 浏览器默认开启
我们在写线段树的时候,对于左右儿子常常是这样写的:
void build(int id,int l,int r){
tree[id].l=l;
tree[id].r=r;
if(l==r) return;
int mid=(l+r)>>1;
build(id*2,l,mid);
build(id*2+1,mid+1,r);
pushup(id);
}