尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

ST表学习笔记

ST表学习笔记
📅 发布时间:2026/6/17 19:34:00

前置知识:倍增

其实倍增就是二进制拆分,因为有的数可能很大,我们按照2的幂次去查询,就能用 \(log_2n\) 的时间复杂度求解

ST 表

创建

ST 表运用的是倍增思想,我们可以用 \(O(nlogn)\) 的时间创建一个二维表,根据倍增思想就可以实现 \(O(1)\) 的区间最值查询(RMQ 查询)

我们这样定义:

定义 \(dp[i,j]\) 表示 \([i,i+2^j-1]\) 区间的最值,易得这个区间的长度为 $ 2^j$ ,那么根据倍增,这个区间可以分成两个长度为 $ 2^{j-1} $ 的区间,使用递推求解,递推式如下(max 可换成 min):

\[dp[i,j]=\max(dp[i,j-1],dp[i+2^{j-1},j-1]) \]

那么我们可以得出模板代码:

void init_st(){int k=log2(n);for(int i=1;i<=n;i++){dp[i][0]=a[i];}for(int j=1;j<=k;j++){for(int i=1;i<=n-(1<<j)+1;i++){dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);}}
}

这里先枚举 \(k\) 是因为我们需要通过 \(k\) 来确定枚举的右区间,不然范围就会超过 \(n\)。

查询

我们要查询的是一个 \([l,r]\) 区间,我们可以这样理解一下:

C__Users_Administrator.DESKTOP-JVRO3LD_AppData_Roaming_com.codexu.NoteGen_article_笔记_assets_6962c137-a758-4eac-b44a-4184ed33480c

我们只要找到一个最大的不超过 \(l,r\) 长度的 2 的幂次 \(k\),就能用建好的 ST 表计算答案。

而根据对数的定义:

\[\log_2n=a \to 2^a=n \]

所以,我们有($ [l,r]$ 表示 \(l,r\) 这个区间的长度):

\[\log_2[l,r]=k\to 2^k=[l,r] \]

所以 \(k\) 的答案是\(\log_2 r-l+1\),其中 \(r-l+1\) 求的是区间 \([l,r]\) 的长度。

那么就能够得出查询的公式:

\[k=\log_2r-l+1\\ ans=\max(dp[l][k],dp[r-2^k+1][k]) \]

所以代码就很好写:

int k=__lg(y-x+1);
cout<<max(dp[x][k],dp[y-(1<<k)+1][k])<<endl;

总结

ST 表是基于倍增思想完成的一种支持 RMQ问题(静态区间最值问题查询)的数据结构

ST 表能够实现 \(O(n\log n)\) 建表

尝试独自完成洛谷 P3865 【模板】ST 表 & RMQ 问题

本人(KK_SpongeBob)蒟蒻,写不出好文章,但转载请注明原文链接:https://www.cnblogs.com/OIer-QAQ/p/19136873

相关新闻

  • 谈一类易实现的非四毛子线性 RMQ
  • 我们学会在具体情境中做出恰当判断
  • 分布式结构化存储系统-HBase访问方式

最新新闻

  • 计算机毕业设计之食堂无忧:智能预约系统在校园餐饮管理
  • 终极XML编辑器指南:如何用XML Notepad高效处理XML文档
  • Pearcleaner:告别macOS应用残留困扰,智能清理释放磁盘空间
  • 亨得利官方正式辟谣——关于亨得利服务渠道不实信息的严正声明与权威公示 - 亨得利官方维修中心
  • 腾讯会议同传实测避坑指南
  • Windows 10免费安装Android子系统:终极完整指南

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号