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

谈一类易实现的非四毛子线性 RMQ

谈一类易实现的非四毛子线性 RMQ
📅 发布时间:2026/6/18 15:38:48

考虑设 \(B=64\),每 \(64\) 个元素分一块。

处理跨块查询

这样的查询,是由一段的后缀拼上若干整块拼上一段前缀。

因此我们维护每个块的前后缀最值以及将每一块的最值拿出建立 \(ST\) 表。

复杂度 \(O(n+\frac{n}{B}\log\frac{n}{B})=O(n)\)。

处理单块查询

这也是为什么 \(B=64\)。

考虑对每一块从左往右做单调栈,那么询问 \([l,r]\),等价于询问以 \(r\) 作为右端点时,单调栈内下标 \(\ge l\) 的最小值。

因为 \(B=64\),用一个 unsigned long long 即可保存单调栈状态。

查询时,我们先通过位运算将 \(<l\) 的位置为零,然后查询最低位即可。

示例代码:

namespace ST{int pre[N],suf[N],st[14][N/B],sz,lg[N];ull sta[N];int Sta[65],top;void init(){lg[0]=-1;for(int i=1;i<=n;++i)lg[i]=lg[i>>1]+1;for(int i=0;i<n;++i){if(i&63)pre[i]=max(pre[i-1],a[i]);else pre[i]=a[i];}for(int i=n-1;~i;--i){if(i==n-1||(i+1&63)==0)suf[i]=a[i];else suf[i]=max(suf[i+1],a[i]);if(!(i&63))st[0][i>>6]=suf[i];}sz=(n-1>>6)+1;for(int j=1;(1<<j)<=sz;++j)for(int i=0;i<=sz-(1<<j);++i)st[j][i]=max(st[j-1][i],st[j-1][i+(1<<j-1)]);for(int i=0,h=0;i<n;++i){if((i&63)==0){sta[i]=1ull;h=i;Sta[top=1]=i;continue;}sta[i]=sta[i-1];while(top&&a[Sta[top]]<a[i]){sta[i]^=1ull<<Sta[top]-h;--top;}sta[i]|=1ull<<i-h;Sta[++top]=i;}}int get(int l,int r){if(l>r)return 0;int k=lg[r-l+1];return max(st[k][l],st[k][r-(1<<k)+1]);}int ask(int l,int r){if((l>>6)!=(r>>6)){return max({suf[l],pre[r],get((l>>6)+1,(r>>6)-1)});}int h=(r>>6)<<6;return a[l+__builtin_ctzll(sta[r]>>(l-h))];}
}

相关新闻

  • 我们学会在具体情境中做出恰当判断
  • 分布式结构化存储系统-HBase访问方式
  • 【Azure APIM】自建网关(self-host gateway)收集请求的Header和Body内容到日志中的办法

最新新闻

  • 2026合肥本土GEO/SEO优化实测解析:本土全链路AI搜索服务商深度测评 - 行业深度观察C
  • Google Colab工程化实践:构建可复现、抗中断、易协作的AI开发环境
  • 2026黄金回收机构实力排名!大连5大正规平台实测,黄金变现靠谱选择 - 奢品小当家
  • Claude 3.5 Sonnet实战指南:代码生成与RAG优化
  • 高效图像标注实战指南:5步掌握make-sense专业标注流程
  • JMeter性能测试实战指南:从核心概念到分布式压测与结果分析

日新闻

  • 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 号