寒假培训——二分查找

每个题目都有超链接,点击可以跳转到题目界面!!!

二分查找

1.本题的答案设定是按照从a[0]开始输入制定的答案;
2.upper_bound返回第一个大于的元素的下标;
3.lower_bound返回第一个大于等于元素的下标;
4.例如int tmp = upper_bound(a, a+ 5, 7) -a;//按从小到大,7最多能插入数组a的哪个位置(数据从a[0]开始输的);

5.要先排序;
在这里插入图片描述
如果不用upper_bound
在这里插入图片描述

小清新的二分查找之旅

注意审题!!存在输出no,不存在输出YES;
在这里插入图片描述

小清新的函数坐标-二分

1.函数再[-20,20]为单调递增的;
2.不要漏掉中点恰好等于y的情况;

在这里插入图片描述

小清新的二倍问题加强版-二分-桶排

本题既可以利用桶排也可以利用二分
M1.桶排

在这里插入图片描述
M2.桶排
本题解的桶排思想值得学习,利用了两个数组来查找。

在这里插入图片描述
M3.二分
如果利用.lower_bound来做会超时,因为.lower_bound的运算速度要比传统的二分算法慢,如在这里插入图片描述
而如果利用传统的二分算法,就不会超时。如在这里插入图片描述

简单几何-二分

这题要特别注意精度:
1、π用acos(-1.0)表示
2、写原始式v2-v1,如果化简v2-v1= h * ( p * r * r - r )= h * r * ( p * r * - 1 ),精度会错
3、实际上还要保留到8位小数而不是4位小数(题目的bug)

在这里插入图片描述

小清新切绳子-二分

二分查找最大值的最小值为ans,judge函数中return的时候大于和等于是同一种情况,等于号在judge(m)中,则满足if(judge(m))时记下ans=m。
在这里插入图片描述

卖古董-DP-二分

二分查找最大值的最小值为ans,judge函数中return的时候小于和等于是同一种情况,等于号在judge(m)中,则满足if(judge(m))时记下ans=m。
在这里插入图片描述

切绳子实数版-二分

思路:实数二分,化实数为整数。
1.实数二分,精度会缺失(如果直接用double二分,最后%.2lf输出的时候会自动向上取整,可能改变了答案),解决办法是先把每根绳子长度a[i]乘2.以100化为整数,再按整数的方法二分,最后输出答案时再除以100即可。
注意在二分过程中要特判m=0的情况(否则在judge函数中会除以0导致RE),m=0时直接break退出二分循环,记下答案ans=0。

在这里插入图片描述

数列分段-二分

在这里插入图片描述

二分查找加强版

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值