二分模板

/*
我本想统一离散二分与连续二分,最后发现没多大意义,就将两种都记录下来;
我注意到 二分问题 对于mid 的判定 不一定 总是 真假二态的;
例如:高精度除法使用二分,当刚好整除时,可直接结束二分;
虽然 传统二态也可以得到正确答案,但耗时多一点;
状态数与实际越相同,二分次数越少;(但目前只遇到了三态)
*/
//离散二分
int type;
while(l<=r){
mid=(l+r)/2;
if(type==1){
ans=mid;
r=mid-1;
}
if(type==0) l=mid+1;
if(type==-1){
ans=mid;
break;
}
}


//连续二分;
int type;
while(r-l<=eps){
mid=(l+r)/2; //注意使用double类型;
if(type==1){
ans=mid;
r=mid;
}
if(type==0) l=mid;
if(type==-1){
ans=mid;
break;
}
}
阅读更多
文章标签: cpp
上一篇KMP算法
下一篇拆解全集;
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭