我在代码中采用了如下的二分:
int ans=-1,le=1,ri=m,mid;
while(le<=ri)
{
mid=(le+ri)>>1;
if(check(mid))
{
le=mid+1;
ans=max(ans,mid);
}
else ri=mid-1;
}
WA了#3。
但是改成这样的就过了??
int ans=-1,le=1,ri=m,mid;
while(le<ri)
{
mid=(le+ri)>>1;
if(check(mid))
{
le=mid+1;
}
else ri=mid;
}