二分法三模板(自用)
2024-01-08 13:21:05
?最小的值 &&?最前面的值
int l=1,r=n;
while(l<r){
int mid=l+r>>1; //左偏
if(check(mid)) r=mid; //check判断mid是否满足性质
else l=mid+1;
}
最大的值? && 最后面的值
int l=1,r=n;
while(l<r){
int mid=l+r+1>>1; //右偏
if(check(mid)) l=mid;
else r=mid-1;
}
浮点二分
while(r-l>1e-5){ //精度控制
double mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
文章来源:https://blog.csdn.net/2302_80585579/article/details/135437625
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!