求助:这样写线段树二分,复杂度是严格 log 的吗 qwq
还有,是不是把前两行改成
if(l==r){
if(a[p].min>s) return -1;
else return l;
}
复杂度就会有问题
task: 找到位置 >=x 的第一个值 <=s 的位置
int query(int p,int l,int r,int x,ll s){
if(a[p].min>s) return -1;
if(l==r) return l;
int mid=(l+r)/2;
if(x<=mid){
int res=query(p*2,l,mid,x,s);
if(res!=-1) return res;
else return query(p*2+1,mid+1,r,x,s);
}
else return query(p*2+1,mid+1,r,x,s);
}