码迷,mamicode.com
首页 > 其他好文 > 详细

二分与三分

时间:2019-06-04 22:30:43      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:二分答案   img   while   数据   一个   opened   bsp   pre   模型   

二分与三分

一:二分

  在一个单调有限的区间上找一个值,每一次分左右两部分,判断是在左右哪两个区间,并及时调整上下界,直至找到了目标元素,就如他的名字一样,二分,不断把数据分成两半

  但是对于解决实数类的问题,通常需要一个精确值,避免死循环

二:二分写法

  1.整数定义域上的二分:

技术图片
 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 }
View Code

  2.实数定义域上的二分:

技术图片
 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 }
View Code

三:二分的常见模型

  1.二分答案

    最小值最大(最大值最小)

  2.二分查找

    单调数列中求排名,位置

  3.代替三分

四:典型例题

  1.愤怒的牛

    (1).例题

    (2).思路

    (3).伪代码

  2.Best Cow Fences

    (1).例题

    (2).思路

    (3).伪代码

五:三分

六;上级练习

 未完待续~~~

二分与三分

标签:二分答案   img   while   数据   一个   opened   bsp   pre   模型   

原文地址:https://www.cnblogs.com/SeanOcean/p/10976503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!