标签:二分答案 img while 数据 一个 opened bsp pre 模型
在一个单调有限的区间上找一个值,每一次分左右两部分,判断是在左右哪两个区间,并及时调整上下界,直至找到了目标元素,就如他的名字一样,二分,不断把数据分成两半
但是对于解决实数类的问题,通常需要一个精确值,避免死循环
1 bool Check(int p) 2 { 3 return p; 4 } 5 int Bt(int l,int r) 6 { 7 int ans=0,mid; 8 while(l<=r) 9 { 10 mid=(l+r)>>1, 11 Check(mid)?ans=mid,l=mid+1:r=mid-1; 12 } 13 return ans; 14 }
1 double DLT=0.1; 2 bool Check(double p) 3 { 4 return p; 5 } 6 int Bt(double l,double r) 7 { 8 double ans=0,mid; 9 while(r-l>=DLT) 10 { 11 mid=(r+l)/2.0; 12 Check(mid)?ans=mid,l=mid:l=mid; 13 } 14 }
最小值最大(最大值最小)
单调数列中求排名,位置
(1).例题
(2).思路
(3).伪代码
(1).例题
(2).思路
(3).伪代码
标签:二分答案 img while 数据 一个 opened bsp pre 模型
原文地址:https://www.cnblogs.com/SeanOcean/p/10976503.html