二分答案与二分查找
作者:@魔幻世界魔幻人生
本文为作者原创,转载请注明出处:https://www.cnblogs.com/subtlemaple/p/16424943.html
二分答案与二分查找
一. 适用范围
如果序列是有序的,就可以通过二分查找快速定位所需要的数据。除此之外,二分思想还能求出可行解的最值问题,如最小的最大值,最大的最小值等等
二.使用方式
二分时首先要确定上下界
函数来用
两种不同的代码构造
void erfen()
{
int l=0,r=1e10;
while(l <= r)
{
int mid = (l + r) / 2;
if(check(mid)) ans = mid , l = mid + 1;
else r = mid - 1;
}
printf("%d",ans);
}
void erfen()
{
int l=0,r=1e10;
while(l + 1 < r)
{
int mid = (l + r) / 2;
if(check(mid)) l = mid;
eles r = mid;
}
printf("%d",l);
}
第一种方式:不使用上下界作为答案,而是在每一次
第二种方式:使用上下界作为答案,此时可以发现,
三.注意事项
二分题目有时会精确到小数,此时最好使用第二种二分方式,为确保精度,设
切勿忘记开 long long , 任何题都一样
小数精度模板:
#define eps 1e-8
void erfen()
{
double l=0,r=1e10;
while(r-l > eps)
{
double mid = (l+r)/2.0; //除法要带小数点保精度
if(check(mid)) l = mid;
else r = mid;
}
printf("%.10lf",l);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】