int binary()
{
int l=0,r=maxn;
while(l<=r){
int mid=(l+r)/2;
if(find(mid)){
ans=mid;
l=mid+1;
}else{
r=mid-1;
}
}
cout<<ans<<endl;
}
可以解决的问题:
- 求最大的最小值(NOIP2015跳石头)。
- 求最小的最大值(NOIP2010关押罪犯)。
- 求满足条件下的最小(大)值。
- 求最靠近一个值的值。
- 求最小的能满足条件的代价。