bianshiyang @ 2023-12-10 17:42:12
如果你查询时也是使用结构体,请注意下面这种写法:
node query1(int k,int l,int r,int a,int b)
{
node res1,res2;
if(a<=l&&b>=r)
{
return t[k];
}
down(k,l,r);
int mid=(l+r)>>1;
if(a<=mid) res1=query1(k<<1,l,mid,a,b);
if(b>mid) res2=query1((k<<1)|1,mid+1,r,a,b);
return work(res1,res2);
}
这样子写是错误的,因为
node query1(int k,int l,int r,int a,int b)
{
if(a>r||b<l) return {};
if(a<=l&&b>=r)
{
return t[k];
}
down(k,l,r);
int mid=(l+r)>>1;
return work(query1(k<<1,l,mid,a,b),query1((k<<1)|1,mid+1,r,a,b));
}
另外弱弱的问一句:这题真的是蓝吗,调崩了,感觉可以评紫。