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

news/2025/10/12 17:15:47/文章来源:https://www.cnblogs.com/spdarkle/p/19136872

考虑设 \(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))];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我们学会在具体情境中做出恰当判断

当前AI的"情感"本质是数据驱动的符号运算。虽然能通过分析人类表情、语言模式生成"合理"回应,但缺乏神经递质调节和生物电信号支持5。例如,AI可以模仿安慰人的语言,却不会因共情而失眠,也不会…

【教程】无需第三方应用,Windows自带邮箱如何绑定QQ邮箱等第三方邮箱

无需第三方应用,Windows自带邮箱如何绑定QQ邮箱等第三方邮箱前言 CSDN主页:https://blog.csdn.net/rvdgdsva 博客园主页:https://www.cnblogs.com/hassle微软的 Outlook 按下win键弹出搜索栏,搜索栏输入邮件就会弹…

ubuntu默认桌面解决vnc灰屏

ubuntu默认桌面解决vnc灰屏一、安装vncserver sudo apt-get install tightvncserver 二、创建/关闭端口 # 创建端口 vncserver :1 -geometry 1920x1000 -depth 24# 关闭端口 vncserver -kill :1 三、解决VNC连接后灰…

2025婚纱摄影影楼权威推荐榜:专业团队与创意拍摄打造梦幻婚礼

随着婚庆行业的不断发展,越来越多的新人开始注重婚纱照的质量和创意。选择一家专业的婚纱摄影影楼,不仅能够记录下美好的瞬间,还能为婚礼增添更多浪漫与回忆。为了帮助筛选婚纱照哪家影楼更专业品牌,特此发布权威推…

分布式结构化存储系统-HBase访问方式

分布式结构化存储系统-HBase访问方式 HBase提供了多种访问方式,包括HBase shell,HBase API,数据收集组件(比如Flume,Sqoop等),上层算框架以及Apache Phoenix等,本篇博客将详细介绍这几种方式。 一.HBase Shell…

智能(embodied AI)、机器人视觉 + 交互、边缘 AI

智能(embodied AI)、机器人视觉 + 交互、边缘 AI智能(embodied AI)、机器人视觉 + 交互、边缘 AI 智能(embodied AI)、机器人视觉 + 交互、边缘 AI 智能(embodied AI)、机器人视觉 + 交互、边缘 AI 智能(embo…

【Azure APIM】自建网关(self-host gateway)收集请求的Header和Body内容到日志中的办法

问题描述 使用 Azure API Management(APIM)时,需要记录每个 API 请求的 Header 和 Body,以便进行问题排查和审计,如何配置才能完整捕获这些信息呢?问题解答 在配置API的时候,启用 trace 策略来收集 inbound / …

[JAVA]JDK多版本设置

[JAVA]JDK多版本设置windows环境背景: 经常会遇到不同项目,需要不同版本的jdk版本,每次都需要手工修改环境变量 我这里遇到需要分别使用jdk1.8和jdk17解决: 通过bat设置好版本,通过脚本实现反复快速修改。 @echo …

Google Veo3生成跳舞视频

Google Veo3生成跳舞视频背景 Google Veo 3 是谷歌 DeepMind 于 2025 年 5 月推出的第三代 AI 视频生成模型,在视听同步、画质表现、创作控制等方面实现了显著突破, 视听协同生成 原生音频同步技术:支持文本或图…

【PolarCTF】stackof

1,pwntools 2,ida pro1. 首先下载文件,得到一个没有后缀名的stack_of文件。拿到ubuntu分别用file和checksec查看。2. 我们可以看到这是一个64位ELF文件,动态链接,符号表未被剥离,看上去没什么保护。 3. 接着拿到…

我们离“科幻”还有多远?Yoshua Bengio_From System 1 Deep Learning to System 2 Deep Learning_NeurIPS 2019 感想

我们离“科幻”还有多远?Yoshua Bengio_From System 1 Deep Learning to System 2 Deep Learning_NeurIPS 2019 感想不用我说大伙也知道,近几年来,AI发展极为迅速,对我们的生活和发展产生了巨大的影响;我自己很深…

C# console get current screen DPI from user32.dll and gdi32.dll

using System.Runtime.InteropServices;namespace ConsoleApp24 {internal class Program{ [DllImport("user32.dll")]static extern bool SetProcessDPIAware();[DllImport("user32.dll")]static…

冬天快乐

济南的秋雨,往往摆出一副生人勿近的冷淡模样,默默撑起一片云当做遮阳伞、或者吞吐着光线,叫人难以分辨雨丝的形态;有时甚至连一点声音的余地也不留下,只有叫你伸出手并深吸一口温柔的秋香,才算是通过了她共舞的申…

新生赛 F,H,J 题解

F. 金苹果 搜索题。 首先在输入中记录点 \(S,P,T\) 的坐标。 第一问,搜索要求不经过点 \(P\),可以将 px,py 记录成 #,然后从 \(S\) 开始搜(dfs 或 bfs 均可)能不能到达 \(T\)。 第二问,从 \(S\) 出发能否先经过 …

pycharm跑python项目易出错的困难

pycharm跑python项目易出错的困难pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

双端队列的0-1BFS

问题: B. Labyrinth 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define ll long long #define fi first #define se second #define vi vector<int> #define vll vecto…

Python psycopg2 类库使用学习总结

实践环境 openGauss 6.0.0 TLS企业版 python3 .9.13 psycopg2 2.9.10 实践操作 # -*- coding:utf-8 -*-import psycopg2if __name__ == __main__: # 连接方式1# connection_str = host=192.168.88.139 port=15400 d…

[GenAI] RAG架构演进

RAG架构演进 RAG 的概念和思想最早是在 2020 年由 Meta 公司的技术团队在文章 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” 中正式提出的,用于给当时已经开始出现的大型预训练语言模型提供…

多后端服务器架构解析 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

24NOIP游记——彼时彼刻

NOIP2024游记: day-2:仅是因为本人在看到不少人AFO的帖子有感而发马上就要奔赴考场了,这两天也看到了不少朋友或陌生人AFO的帖子。此时此刻,恰如彼时彼刻,我想明年的今天,我应该也会加入这些写AFO祭的一员。 开始…