二分与三分

二分与三分

一:二分

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

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

二:二分写法

  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).伪代码

五:三分

六;上级练习

 未完待续~~~

本文作者:SeanOcean

本文链接:https://www.cnblogs.com/SeanOcean/p/10976503.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

大一ACMer蒟蒻一枚 坐标山大

欢迎你的到来(🤝);

posted @   SeanOcean  阅读(328)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

我和我的祖国 (童声版) - 李如意

词:张藜

曲:秦咏城

我和我的祖国

一刻也不能分割

无论我走到哪里

都流出一首赞歌

我歌唱每一座高山

我歌唱每一条河

袅袅炊烟 小小村落 路上一道辙

我最亲爱的祖国

我永远紧依着你的心窝

你用你那母亲的脉搏和我诉说

我的祖国和我

像海和浪花一朵

浪是那海的赤子

海是那浪的依托

每当大海在微笑

我就是笑的旋涡

我分担着海的忧愁

分享海的欢乐

我最亲爱的祖国

你是大海永不干涸

永远给我 碧浪清波 心中的歌

我最亲爱的祖国

你是大海永不干涸

永远给我 碧浪清波 心中的歌