为什么这么写:
int query(int l,int r,int id)
{
if(l<=a[id].l && r>=a[id].r){return a[id].val;}
//pushdown tag...
int mid=(a[id].l+a[id].r)>>1;
if(l<=mid)ans=min(ans,query(l,r,id<<1));
if(r>mid)ans=min(ans,query(l,r,id<<1|1));
return ans;
}
对,但是这么写
int query(int l,int r,int id)
{
if(l==a[id].l && r==a[id].r){return a[id].val;}
//pushdown tag...
int mid=(a[id].l+a[id].r)>>1;
if(l<=mid)ans=min(ans,query(l,mid,id<<1));
if(r>mid)ans=min(ans,query(mid+1,r,id<<1|1));
return ans;
}
不对?