【倍增算法】【倍增思想】 【倍增所涉及的多种题型】【一个指数级别枚举,但是时间复杂度是对数的算法】

13 篇文章 0 订阅
订阅专栏

 简单提取一下核心

-------------------------------------------------------------------------------------------------------------------

任意一个整数可以表示成若干个  2的次幂项之和   (通俗来讲就是二进制那种表示法)

-------------------------------------------------------------------------------------------------------------------

“倍增”与“二进制划分” 的思想 是 互相结合

-------------------------------------------------------------------------------------------------------------------

最典型的是:

1.RMQ算法(ST算法)

2.树上倍增  (例如 LCA在树上倍增的应用)

一.

下面就以 RMQ 算法  为例,来解释一下什么是倍增的二进制划分?

------------------------------------------------------------------------------------------------------

好像步长会与  2^j 有关  (是指数级别的

所以涉及倍增的,时间复杂度 都是(对数级别)

------------------------------------------------------------------------------------------------------

 

max(         ) 中 前面的数组 后面的数组第二维 

表示的 是  步长是  2^(j-1) 次方

但是我们只存 ( j -1 )

 二.

下面以 LCA算法 为例,解释一下倍增的二进制划分。

 

三.

下面以 快速幂 为例, 解释一下倍增的二进制划分

对于快速幂来说,

我们求的是  a^k 

我们要把k划分成 log(k)个以2为底的 二进制数

这些数相加==k

 然后 a^k 就可以用这些表示

代码形式为

 每次遇到状态里面有1的时候就要  将结果* a 

a也是不断变化的,不断的指数级别变化

从   a 到 a*a 到  a*a*a

四.

什么情况下可以用倍增?

矩阵乘法举例,一定要具有结合律才可以使用倍增算法。

然后用结合律就是

结合律意味着    可以任意先算哪个,然后再算哪个。

 

 根据上述,初步知道:

倍增的 2^j 一般是体现在  DP数组的最后一维的,

并且表现形式是  j

由于步长是指数形式,所以 j 的范围一般不会很大

有利于优化时间复杂度

j 作为最后一维度,范围一般开  18 左右

  这只是个分界线

 下面是其他一些运用 倍增思想的 题型

1.(倍增版)floyd()算法 o( logN * n^3 )

由于普通的floyd算法,解决不了负环问题

当题目中没说边权的正负,但是说明了可重复经过边,

求最短路。

大概率是存在负边的。

而且题目中说了可重复经过,所以排除SPFA那样有判重数组的。

所以我们用 倍增版 floyd() 算法  (acwing 345 牛站)

下面是关于 倍增版 floyd() 算法的 代码解析:

(floyd在此处是mul,是类似于矩阵乘法的写法)

 

倍增算法
weixin_34260991的博客
12-29 2239
倍增算法 【序言】         我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。   【一】         从前,有一只可爱得不得了的...
【白话系列】倍增算法
热门推荐
JarjingX
11-13 3万+
【序言】         我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。 【一】         从前,有一只可爱得不得了的小白兔,它想从
倍增算法讲解——序列、RMQ和LCA
qq_57150526的博客
01-17 1563
讲解倍增算法关于序列、RMQ和LCA的应用
三峡大学算法设计与分析论文-倍增思想算法运用与实现
01-13
倍增思想作为一种优化算法性能的策略,它基于分治和递归原理,能够将原本线性时间复杂度的问题转化为对数时间复杂度。在本文中,我们将深入探讨倍增算法的原理、实现方法以及它在不同场景下的应用。 **1. 倍增算法...
最优化ToF飞行时间测距,需要一个硅光电倍增管-综合文档
05-23
综上所述,优化TOF测距系统涉及多方面的技术和策略,而硅光电倍增管作为核心部件,其性能直接影响整个系统的性能。通过精心设计和调整,我们可以构建出更高效、更精确的TOF测距系统,满足不同应用场景的需求。对于...
Onsemi_最优化ToF飞行时间测距,需要一个硅光电倍增管-综合文档
05-23
在现代的光学传感器技术中,飞行时间(Time-of-Flight, TOF)测距方法是一种广泛应用的方法,尤其在自动驾驶、机器人导航、3D成像等领域。ON Semiconductor 是一家知名的半导体制造商,他们提供了一系列针对TOF测距...
算法文档无代码浅析倍增思想
最新发布
04-14
算法文档无代码浅析倍增思想提取方式是百度网盘分享地址
倍增算法对后缀数组构造,lcp构造及O(P+log(n))的字符串搜索
08-26
倍增算法对后缀数组构造,height数组构造,lcp构造及O(P+log(n))的字符串搜索,可以运行的源代码,具体对应的算法可在我的博客中查看。
rmq算法倍增
12-17
rmq算法,有详细注释 dp1[i][j] = max ( dp1[i][j-1] , dp1[i+(1<<(j-1))][j-1] ) ; dp2[i][j] = min ( dp2[i][j-1] , dp2[i+(1<<(j-1))][j-1] ) ;
倍增:C++算法教程(临时保存)
11-09
这个算法通过构建一个二维数组,其中表示区间, +2−1的最大值。预处理阶段,通过递推计算所有数组元素,时间复杂度为(log),查询阶段时间复杂度仅为(1)。 2. **LCA倍增法**:LCA问题的高效解决方案之一是使用倍增...
后缀数组学习笔记——罗穗骞倍增算法代码
weixin_34007879的博客
02-02 106
    一开始看“小罗”写的论文和模板真的云里雾里,理解起来十分困难,后来结合一个百度贴吧里面的学习笔记总算是把倍增算法的代码的意思搞懂了,于是后面自己也写了一份对“小罗”倍增算法代码的注释,希望能对各位正在学习后缀数组的同僚带来一点帮助。     另附上百度贴吧那篇文章的链接:http://tieba.baidu.com/f?kz=754580296 int wa[maxn],wb[ma...
倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
繁凡さん的博客
04-03 1万+
目录一、倍增算法二、倍增算法的应用:求LCA(最近公共祖先)附模板题三、倍增算法的应用:RMQ 问题(ST表)附模板题 一、倍增算法 要了解倍增之前,建议先看一下大佬的博客:【白话系列】倍增算法 看完以后相信你已经对倍增有了大致初步的了解,下面给出倍增的定义 (其实没什么用,好长一段话建议不看) 倍增 从字面的上意思看就是成倍的增长 ,这是指我们在进行递推时,如果状态空间很大,通常的线性递推无法满...
写文章

热门文章

  • 【对图论题目隐含 有关 重边、自环、回路 的理解】 1513
  • 【倍增算法】【倍增思想】 【倍增所涉及的多种题型】【一个指数级别枚举,但是时间复杂度是对数的算法】 800
  • 树形结构之:【P5588小猪佩奇爬树】【组合思想】【对于树形问题,我们最好从把一个子树当成一个集合的角度考虑】【对于树形上面的路径条数问题,由于树上两点唯一确定一个路径,所以把路径看成点对】 716
  • 二叉搜索树之:【BST】【基本应用汇合】 698
  • 线段树之:【懒标记的原理】【懒标记模板的分析】 683

分类专栏

  • postgraduate 9篇
  • 二进制 1篇
  • oj刷题记 20篇
  • 考研写法 8篇
  • 王道 2篇
  • 字符串 6篇
  • 考研 2篇
  • 基础数据结构 7篇
  • 高级数据结构 21篇
  • 力扣 1篇
  • 图论 86篇
  • 数论 23篇
  • 思维 15篇
  • 基础算法 13篇
  • codeforces 5篇
  • 深搜 1篇
  • STL 2篇
  • 推导 4篇
  • 牛客多校 1篇
  • DP 8篇
  • 错误总结 5篇
  • 数据类型 1篇
  • 集合分析法思维 1篇
  • 贪心 1篇

最新评论

  • POJ P1835 素数密度 【二次筛】【向上取整格式】【1是个坑,要被单独标记为合数】

    想去看倒悬山: j=max(p+p,(LL)ceil( (double)l/(double)p ) *p) 这句话是什么意思?看不懂表情包

  • 【oj刷题记】【1366】【KMP字符串模式匹配算法】【next【】数组的细致研究】【探讨ne[]数组0,1开头和-1,0开头的区别】

    〖祈〗: 好文没人看

  • 单调队列之:【维护最大连续子段和】【前缀和s[]】【确定右端点后,找一个s[l]最小的左端点l】【单调队列是基于滑动窗口性质的】【单调队列大纲】

    这把拿捏了哟: s[q[tt]]>=s[i]) tt--;求区间和最大应该是<=吧 写反了 单调队列的队首应该是最大值

  • 【1267删除单链表的倒数第k个节点】【单链表】

    CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm

大家在看

  • 求最大公约数和辗转相除法 12
  • C#的数据类型 579
  • 设计模式六大原则:里氏替换原则详细说明和案例示范 1024
  • 不要再走弯路了,2024最全的黑客入门学习路线在这(通俗易懂) 122
  • AI面试官智能体创建及发布-以千帆大模型为例

最新文章

  • 【1036:括号匹配】【栈】
  • 【1229:括号匹配】【栈】
  • 【1273:三个有序数组的交集】【归并】
2023年10篇
2022年188篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码东莞网站开发塘坑网络营销丹竹头网页制作双龙百姓网标王坑梓网站制作设计坪地网站建设吉祥网页设计吉祥企业网站设计盐田SEO按天计费塘坑百姓网标王推广福田外贸网站建设大芬网站关键词优化石岩百搜标王东莞英文网站建设龙岗外贸网站设计大鹏网站改版爱联网站建设塘坑推广网站观澜网站优化按天计费深圳网站建设设计丹竹头网站关键词优化坪地百度爱采购大鹏seo塘坑高端网站设计民治关键词按天计费惠州英文网站建设观澜网站推广工具大鹏设计网站横岗模板网站建设龙岗百度seo歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化