暑期集训DAY3二分总结

DAY3 二分总结智灵基础班
二分要image(前提条件)

对猜数字得到二分查找有三种情况

上面是完成之后的解释

上面是最后的完整版

           👆是上面二分的循环条件

解决找第一个x的问题

图示:

:point_down:的是找第一次出现x的问题与上面讲的二分的区别

if判断是为了防止出现没有的情况

此问题的另一种方法

与上面的略有不同

找到最后一次出现x的位置

各类取整

讲解(向上取整):
众所周知,系统进行整数计算时是自动向下取整的
这里,我们以 /4 为例:
7/4=1.75 ,向上取整 =2
但是程序是自动向下取整,就算出来 =1
这时,我们就想:如果给 7 加上除数 4-1 ,就是给 7 加上 3 ,就 =10
10/4=2.5 ,默认向下取整,即为 2
再试一个数:比如 88 原本 /4=2 ,向上取整之后应该还是 2
9 加上 3=11
11/4=2.75 ,自动向下取整, =2
由此,我们推出公式: ceil(\frac {y} {x})=\frac {[y+(x-1)]} {x}=\frac {(y+x-1)} {x}

两种方法的对比

写起来最简单但是理解起来最难的方法的方法

这里是为了在计算mid时出现 L<1e9,R<1e9,mid<1e9 但是 L+R>1e9 导致溢出的情况对此,我们要用像上图的解决方案
下面是图片里公式的详细推导过程:
\frac {L+R} {2}=\frac {R+L} {2}=\frac {R-L+L+L} {2}=\frac {R-L+2L} {2}=\frac {R-L} {2}+\frac {2L} {2}=\frac {R-L} {2}+L=L+\frac {R-L} {2}

例题题面

关键部分代码

(latex公式手打不易,点个赞吧)
本人第一次尝试latex公式,如有错误,请指出

2 个赞