Processing math: 100%

倍增算法

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

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

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

ZHX:SB题,29=512,从1000跳512步,还剩488;28=256,从488跳256步,还剩232;27=128,从232跳128步,还剩104;

26=64,从104跳64步,还剩40;25=32,从40跳32步,还剩8;24=16,16>8,不跳;23=8,从8跳8步,完了。

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

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

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

 ZHX:我8步

我:艹,你怎么这么奆


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

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

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

posted @   Soledad_S  阅读(606)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示