线段树
这显然是一颗空树
namespace segment_tree{
#define lid T[id].ls
#define rid T[id].rs
#define mid ((T[id].l+T[id].r)>>1)
const int NUM=1e6+10;
struct tree{
int l,r,ls,rs;
}T[NUM];
int root,stot;
void pushup(int id){
}
void pushdown(int id){
}
void build(int &id,int l,int r){
T[id].l=l,T[id].r=r;
if(!id) id=++stot;
if(l==r){
return;
}
build(lid,l,mid);
build(rid,mid+1,r);
pushup(id);
}
void update(int &id,int l,int r,int val){
if(!id) id=++tot;
if(l<=T[id].l&&T[id].r<=r){
return;
}
pushdown(id);
if(l<=mid) update(lid,l,r,val);
if(r>mid) update(rid,l,r,val);
pushup(id);
}
int query(int id,int l,int r){
if(l<=T[id].l&&T[id].r<=r){
return 0;
}
pushdown(id);
int ans=0;
if(l<=mid) ans+=query(lid,l,r);
if(r>mid) ans+=query(rid,l,r);
return ans;
}
}
using namespace segment_tree;

浙公网安备 33010602011771号