acwing 算法基础课
第一章( 基础算法)
1.3 二分
整数二分
bool check (int k){/*........*/} //判断x满足某种性质
//区间被划分为[l,mid][mid+1,r] 时使用
int search(int l,int r)
{
while(l<r)
{
int mid=l+r>>1;
if(check(mid)) r=mid;
else l=mid+1;
{
return l;
}
//区间划分成[l,mid-1] [mid,r] 时使用
int search(int l,int r)
{
while(l<r)
{
int mid=l+r+1>>1;
if(check(mid)) l=mid;
else r=mid-1;
}
return l;
}
浮点数二分
bool check (double k){/*........*/} //判断x满足某种性质
double search(double l,double r)
{
const doubel esp=1e6 +10 ; //用esp表示精度
while(r-l>esp)
{
double mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid;
}
return l;
}
6428

被折叠的 条评论
为什么被折叠?



