二分算法模板:

二分的思想不说了,在这里主要写一下自己的模板。

1.算法竞赛中:

2.ACwing——yxc

bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:
int bsearch_1(int l, int r)
{while (l < r){int mid = l + r >> 1;if (check(mid)) r = mid;    // check()判断mid是否满足性质else l = mid + 1;}return l;
}
// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:
int bsearch_2(int l, int r)
{while (l < r){int mid = l + r + 1 >> 1;if (check(mid)) l = mid;else r = mid - 1;}return l;
}

三分算法模板

1.整数的三分

凹函数:D - Freefall

dd f(int x)
{   ...........
}
dd three_div(int l,int r)
{while (r-l>2) {int midl=(l*2+r)/3,midr=(l+r*2)/3;if (f(midl)>=f(midr))l=midl;else r=midr;}double ans=a;for (int i=l;i<=r;i++) ans=min(ans,f(i));return ans;
}

凸函数:

dd f(int x)
{   ................
}
dd three_div(int l,int r)
{while (r-l>2) {int midl=(l*2+r)/3,midr=(l+r*2)/3;if (f(midl)<=f(midr))l=midl;else r=midr;}double ans=a;for (int i=l;i<=r;i++) ans=max(ans,f(i));return ans;
}

2.实数上的三分:

凹函数:

dd f(dd x)
{   ................
}dd three_div(dd l,dd r)
{while(r-l>=eps){dd midl=l+(r-l)/3,midr=r-(r-l)/3;if(f(midr)<=f(midl)) l=midl;else r=midr;}return l;
}

凸函数:

dd f(dd x)
{   ....................
}dd three_div(dd l,dd r)
{while(r-l>=eps){dd midl=l+(r-l)/3,midr=r-(r-l)/3;if(f(midr)>=f(midl)) l=midl;else r=midr;}return l;
}

结语 :

二分三分算法思想不难,但是难点是我们在比赛时怎么根据实际情况选出来正确的模板,平时练习和实践很重要!(部分图片来自(lyd)的算法竞赛)。

ACM——二分、三分相关推荐

  1. 2020牛客寒假算法基础集训营5:B.牛牛战队的比赛地(二分/三分)

    整理的算法模板:ACM算法模板总结(分类详细版) 链接:https://ac.nowcoder.com/acm/contest/3006/B 来源:牛客网 题目描述 由于牛牛战队经常要外出比赛,因此在 ...

  2. uva 1463 - Largest Empty Circle on a Segment(二分+三分+几何)

    题目链接:uva 1463 - Largest Empty Circle on a Segment 二分半径,对于每一个半径,用三分求出线段到线段的最短距离,依据最短距离能够确定当前R下每条线段在[0 ...

  3. 牛客算法課 (算法入門班) 二分, 三分, 01分數規劃

    目录 NC19916[CQOI2010] 撲克牌 NC116564 [NOIP2012]借教室 K-th Number 三分思路 圆覆盖问题 传送带 01分数规划 小咪买东西 [USACO 2009 ...

  4. 算法笔记--二分/三分

    while(left<=right){int mind=(left+right)>>1;if(...) return x;else if(...) left=mind+1;else ...

  5. ACM算法模板总结(分类详细版)

    本文模均引用于y总的算法模板,网址:AcWing (转载请注明出处,本文属于持续更新ing.......biubiubiu......) 本人码风比起y总真的差远了,所以敲一遍后,还是想把y总的搬上来 ...

  6. 阿里云nginx服务器多站点的配置

    Fighting! 欲戴皇冠,必承其重! 目录视图 摘要视图 订阅 [活动]Python创意编程活动开始啦!!!    CSDN日报20170426 --<四无年轻人如何逆袭>    [C ...

  7. python时钟罗盘酷炫代码_抖音上的时钟屏保,被我改造完用来表白

    作者:爱编程的小和尚 原文链接:https://blog.csdn.net/Newbie___/article/details/105378852 抖音上很火的时钟屏保,被我改造完后用来准备准备准备表 ...

  8. 训练日志 2019.2.16

    昨天 RMQ 和二分三分除了卡精度卡内存被恶心坏了之外感觉做的还行,尺取法之前听说过但没看过,晚上想补一补的结果又烧了...去医院挂了一晚上点滴... 今天早上打完点滴回来睡了一会,起来开始写线段树, ...

  9. 催化剂概念在管理领域的应用——来自项目管理群的讨论

    催化剂概念在管理领域的应用 开场白 先声明一下,前面有朋友问到催化剂管理是什么?我没有回答.这倒不是故意卖关子.实在是当时一时性起,把自己的一点不成熟的管理尝试拿出来分享,没有充分的准备.所以,没敢贸 ...

最新文章

  1. ZOJ 2588 Burning Bridges 割边
  2. Fiori Elements - sap.ui.core.util.XMLPreprocessor2 - insert fragment
  3. 548B. Mike and Fun
  4. (2)vue.js介绍
  5. apusic6.0需要新项目需要改动文件
  6. 翻译: 4.4. 模型选择Model Selection、欠拟合Underfitting和过拟合Overfitting pytorch
  7. WAP,手机网站建站资料收集 - 老古董
  8. ORID焦点呈现法(Focused Conversation Method)
  9. iOS实现炫酷悬停交互视图
  10. 10个问题帮你瞬间化解面试中的尴尬,赢得面试官好感
  11. Efficient Net
  12. [深度学习]动手学深度学习笔记-15
  13. 分峰截幅c语言算法,光纤布拉格光栅传感解调中的寻峰算法.docx
  14. 古代银票里的加密知识
  15. html打开方式怎么没有,打开文件时右键菜单中没有“打开方式”怎么办?
  16. 歌评 Mondstadt Starlit 星光下的蒙德-陈致逸
  17. cocos2d中遇到棱形组成的方块进行点击判断位置
  18. CISP 相关知识点梳理
  19. 从零开始学架构——架构基础
  20. 有关前端的一些问题(一)

热门文章

  1. powerDisigner16 出现licensekey 过期解决办法
  2. Java集合概述、ArrayList的使用
  3. Boilsoft Video Splitter绿色便携版下载(免序列号)
  4. 目前流行的22款网店系统
  5. 仿ios桌面vivo_vivo仿ios主题教程 vivo设置ios主题的方法
  6. 从终点出发的思维(博弈论的诡计)
  7. 施耐德电气全球两大设计中心落户陕西西安
  8. 用 20 行 python 代码实现人脸识别!
  9. 负载均衡和应用优化基础
  10. 惠普HP LaserJet Enterprise MFP M528dn 驱动