程序模板
二分查找 ( 寻找L~R最后一个满足P的正整数 )
int ANT_binary_search_last(int L,int R,bool(*P)(int)){
int l=L,r=R,ans=-1;
while(l<=r){
int mid=(l+r)>>1;
if(P(mid)) l=mid+1,ans=mid;
else r=mid-1;
}
return ans;
}
二分查找 ( 寻找L~R第一个满足P的正整数 )
int ANT_binary_search_first(int L,int R,bool(*P)(int)){
int l=L,r=R,ans=-1;
while(l<=r){
int mid=(l+r)>>1;
if(P(mid)) r=mid-1,ans=mid;
else l=mid+1;
}
return ans;
}