求符合条件的最大值 解的范围 [l,r]
while(l<r)
{
int m=l+(r-l+1)/2;
if(work(m))
l=m;
else
r=m-1;
}
跳出循环时 l==r
求符合条件的最小值 解的范围 [l,r]
while(l<r)
{
int m=l+(r-l)/2;
if(work(m))
r=m;
else
l=m+1;
}
跳出循环时 l==r
求符合条件的最大值 解的范围 [l,r]
while(l<r)
{
int m=l+(r-l+1)/2;
if(work(m))
l=m;
else
r=m-1;
}
跳出循环时 l==r
求符合条件的最小值 解的范围 [l,r]
while(l<r)
{
int m=l+(r-l)/2;
if(work(m))
r=m;
else
l=m+1;
}
跳出循环时 l==r