码迷,mamicode.com
首页 > 编程语言 > 详细

倍增算法

时间:2019-09-27 01:41:20      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:nbsp   区间   com   bsp   倍增   比较   st表   特殊   代码   

倍增是枚举的一种特殊方式。

假如我们有一根数轴,要从1000走到0

我:一步步走就行了,一定会到的

ZHX:SB题,$2^9=512$,从1000跳512步,还剩488;$2^8=256$,从488跳256步,还剩232;$2^7=128$,从232跳128步,还剩104;

$2^6=64$,从104跳64步,还剩40;$2^5=32$,从40跳32步,还剩8;$2^4=16$,16>8,不跳;$2^3=8$,从8跳8步,完了。

于是ZHX巨佬就用6步到了终点!

假如我们有一根数轴,要从10000000走到0

我:#&^@*&^$@(

 ZHX:我8步

我:艹,你怎么这么奆


倍增利用了任意一个数都可以表示为$\sum 2^k$,每进行一次倍增,所对应的区间就翻了一倍,由此时间复杂度是O(logn)

裸的倍增几乎没有,这是一个精巧的算法,像枚举一样穿插在代码间

但倍增的应用比较有趣:ST表和倍增爬树

倍增算法

标签:nbsp   区间   com   bsp   倍增   比较   st表   特殊   代码   

原文地址:https://www.cnblogs.com/soledadstar/p/11595237.html

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