记录那些弱智错误。
- 父子两倍的线段树,若在修改和询问时要下传懒惰标记,则必须在检查完是否return之后再push_down,否则会数组越界。
void modify(int p,int l,int r,int L,int R){
//push_down(p);错误
if(l>=L&&r<=R){sum[p]=0;tag[p]=1;return;}
push_down(p);//正确
if(L<=mid)modify(ls,l,mid,L,R);
if(R>mid)modify(rs,mid+1,r,L,R);
push_up(p);
}
- 计数问题中间尽可能都开long long。