2023-02-08倍增表

什么是倍增法?

•1,2,4,8,16,32,。。。。。

•每个数是前面的一倍

•步长翻倍

•ST(Sparse Table,稀疏表)表

–应用:解决RMQ问题

–RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。

•例如:

•A数列为:3 2 4 5 6 8 1 2 9 7

•F[1,0]表示第1个数起,长度为2^0=1的最大值,其实就是3这个数。

•同理 F[1,1] = max(3,2) = 3,

•F[1,2]=max(F[1,1],4,5)= 5,

•F[1,3]= max(F[1,2],6,8,1,2) = 8;

•F[1,4]=max(F[1,3],9,7)=9

[if ppt]•[endif]

•像上面的表,每个表的步长依次翻倍

•如果查询整个区间最大的数值,直接计算

•F[1,4]=9

[if ppt]•[endif]

[if ppt]•[endif]

[if ppt]•[endif]



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • C语言经典例程100例 这篇文章主要介绍了C语言经典例程100例,经典c程序100例,学习c语言的朋友可以参考一下...
    縸_3354阅读 2,839评论 0 0
  • 转自这个博客 文章中间我会利用/**/符号附一些自己的理解 概述 RMQ(Range Minimum/Maxim...
    无令便逐风阅读 3,122评论 0 0
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 10,572评论 0 18
  • 基于学生学习共同体培育语文生态课堂文化的研究 近年来,随着现代教育理念的不断深入与...
    火车头123阅读 6,504评论 0 8
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 5,020评论 0 5

友情链接更多精彩内容