hdu 1450 线段树二分查找,形象为非连续区间的缩小与确定(不能判断长度为1的连续段所以最后要特判)
开区间好难理解,还是用闭区间吧
int middl(int x,int y,int cnt)
{
int l=x,r=y;
int ans;
while(r-l>1)
{
int mid=(r+l)/2;
if(quer(1,0,n-1,x,mid)>=cnt)
{
r=mid,ans=mid;
}
else
{
l=mid;
}
}
if(quer(1,0,n-1,x,l)==cnt) ans=l;
else ans=r;
return ans;
}