Jan's light oj 01--二分搜索篇

碰到的一般题型:1.准确值二分查找,或者三分查找(类似二次函数的模型)。

     2.与计算几何相结合答案精度要求比较高的二分查找,有时与圆有关系时需要用到反三角函数利用      角度解题。

     3.不好直接求解的一类计数问题,利用二分直接枚举可能的结果,再检查是否符合题目要求。

     4.区间求解,即利用两次二分分别查找有序序列左右上下限,再求差算出总个数。

 

 

题型知识补充:

    1.

      三分的一般写法:

      

 1 double thfind(double left,double right)
 2 {
 3     double midmid,mid;
 4     while(left + 1e-10 < right)
 5     {
 6         mid = (left + right)/2;
 7         midmid = (mid+right)/2;
 8         if(scla(mid) < scla(midmid))
 9             right = midmid;
10         else
11             left = mid;
12     }
13     return scla(left);
14 }

 

    2.

      PI = acos(-1.0);

      一圈 = 2*PI;

    3.

      light oj 1076 Get the Containers;

 

    4.

      lower_bound(begin(),end(),stand);

      upper_bounder(,,);

 1 int Bsearch_lower_bound(int x)
 2 {
 3     int l = 0, r = n - 1, mid = 0;
 4     while (l <= r)
 5     {
 6         mid = (l + r) >> 1;
 7         if (a[mid] < x) l = mid + 1;
 8         else r = mid - 1;
 9     }
10     return l;
11 }
12 
13 int Bsearch_upper_bound(int x)
14 {
15     int l = 0, r = n - 1, mid = 0;
16     while (l <= r)
17     {
18         mid = (l + r) >> 1;
19         if (a[mid] <= x) l = mid + 1;
20         else r = mid - 1;
21     }
22     return l;
23 }

 

 

虽然啥都干不好,但是还是得坚持呀。

 

你可能感兴趣的:(Jan's light oj 01--二分搜索篇)