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 }

 

 

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

 

转载于:https://www.cnblogs.com/henserlinda/p/5180364.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值