就是lazy数组为什么要与1,难道是因为取反是奇数次是指1的个数,偶数指0的个数吗
void pushdown(ll k,ll l,ll r,ll m)
{
if(lazy[k]==1)
{
tree[k<<1]=m-l+1-tree[k<<1];
tree[k<<1|1]=r-m-tree[k<<1|1];
lazy[k<<1]^=1,lazy[k<<1|1]^=1;
lazy[k]=0;
}
}
void updata(ll l,ll r,ll L,ll R,ll k)
{
if(L<=l&&r<=R)
{
tree[k]=r-l+1-tree[k];
lazy[k]^=1;
}
else
{
ll m=l+((r-l)>>1);
pushdown(k,l,r,m);
if(L<=m)
{
updata(l,m,L,R,k<<1);
}
if(R>m)
{
updata(m+1,r,L,R,k<<1|1);
}
tree[k]=tree[k<<1]+tree[k<<1|1];
}
}