ABC434G Keyboard

本题是一道单侧递归类线段树问题(这类题比较经典的代表是楼房重建).

观察本题的信息结构,可以想到用线段树维护.下称线段树的节点为区间节点.考虑每个区间节点要存放什么信息.

首先,对于任何一段区间操作序列,都应被处理为一段退格加一段数字的组合.如 B1BB23B45 可以化为 BB245.合并两个子区间时,只需考虑让右子区间的前导 B 与左子区间的一段数字后缀发生消去.如 BB123BB456 合并后的结果应为 BB1456.也有可能右子区间的 B 过多,会把左边的数字全消去,如 BB123BBBB456 合并后的结果是 BBB456

现在的问题是:对于一个区间节点,右子区间有 \(x\)B,我们怎么迅速获取左子区间删掉 \(x\) 个数位后缀后的信息?再抽象一下这个问题就是:对于任意 \(x\),我们想迅速知道任意区间节点 \(u\) 后接 \(x\)B 的状态,设这个操作为 \(f(u, x)\)

我们不可以让每个区间节点保存完整的数字信息,否则单个节点保存的信息量就达到了 \(\Theta(n)\) 量级,维护的时间复杂度不可承受;如果我们只存下该区间内数字取模后的信息,又不能从之获知这段数字的后缀信息——取模把它破坏了.

考虑单侧递归.维护每个区间节点的数字长度(数位数量)信息,对某个区间节点 \(u\),计算 \(f(u, x)\),同时已知该区间的左儿子区间,右儿子区间分别有 \(p\)\(q\) 个数位.那么:

  • \(x = 0\) 时,直接返回 \(u\) 的信息即可.
  • \(x \ge p + q\) 时,证明 \(x\)B 将把区间的数位删空,同时可能留下更多的 B,即返回的是一个纯 B 的信息,并且 B 的数量可以平凡计算.
  • \(p < x < p + q\) 时,这 \(x\)B 会把右区间删空,同时影响左区间.我们只需递归左儿子\(f(l_u, \ldots)\))计算信息.不需递归右儿子是因为右区间数位被删空,信息是平凡的.
  • \(0 < x \le p\) 时,这 \(x\)B 只会影响右区间.故只需递归右儿子\(f(r_u, \ldots)\)),计算右儿子后接 \(x\)B 的信息,再与左儿子合并即可……?

这里有一个小问题:左儿子应当同时和右儿子前导的 \(q\)B 抵消,是否需要计算 \(f(l_u, q)\)

由于每次我们只会在单侧进行递归,因此该计算的递归量级不会超过这个区间节点在线段树上的高度,也即,我们在 \(\Theta(\log n)\) 的时间复杂度下解决了计算任意 \(f(u, x)\) 的问题.

梳理一下目前的进度,首先我们是在考虑区间合并.对节点 \(u\) 的左右节点 \(l_u\)\(r_u\) 合并时,需要用到一个 \(f(l_u, x)\) 的操作.解决 $$

从而我们解决了区间合并的问题.

由此,我们只需在线段树的每个区间节点维护三个信息:

  • lb:leading backspaces,表示这个区间的前导 B 数量.
  • v:表示这个区间的数字取模后的结果.
  • cnt:表示这个区间的数字长度.

区间合并解决了,单点更新就被我们解决了.由于我们进行了 \(\Theta(\log n)\) 次区间合并,而单次区间合并的复杂度为 \(\Theta(\log n)\),因此,单次单点更新的复杂度为 \(\Theta(\log^2 n)\)

现在考虑区间查询.我们知道线段树区间查询的本质是将任意区间划分为 \(\Theta(\log n)\) 个区间节点.现在考虑从右向左地考虑这些区间节点,右侧

事实上,对于上面的区间合并操作,我们不必局限于合并两个区间节点,任意的区间合并操作都可以用这个思路进行.

具体而言,我们让区间查询操作支持查询一个区间后接 \(x\)B 的信息状态(即 query 的参数加一个 \(x\),表示要后接 B 的数量).

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

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

相关文章

Swift 6.0 核心特性与迁移指南

Swift 6.0 作为 Swift 语言的重大版本更新,聚焦并发安全、性能优化、语法简洁性及跨平台生态增强,是 Xcode 26 与 iOS 26 开发的核心语言版本。以下是其关键特性、兼容性及迁移要点: 一、Swift 6.0 核心新特性默认开…

Swift 5.9+ 核心特性与实用升级

Swift 5.9 作为衔接 Swift 5.x 与 Swift 6.0 的关键版本,在宏系统、并发模型、语法便捷性及工具链集成上有重要更新,也是 Xcode 15+ 及 iOS 17+ 开发的主流版本;后续小版本(5.10、5.11)则持续优化稳定性与兼容性。…

实用指南:Go语言设计模式:享元模式详解

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

Odoo中使用Google Cloud Storage云存储

今天我们来学习一下如何在Odoo中使用Google Cloud Storage。Odoo原生有Cloud Storage模块,支持Google和Azure的云对象存储,但是仅至此Chater和附件的存储,且没有迁移功能,不能支持指定范围内的的对象存储。注册Goo…

yal8i

dsfsdaofsadfkljsafjklsal;kf

day17_cookie_webstorage - 详解

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

Apache Hudi 项目总体分析

Apache Hudi 项目总体分析 请关注微信公众号:阿呆-bot 1. 项目结构 Apache Hudi 采用多模块 Maven 架构,主要模块如下: hudi-master/ ├── hudi-common/ # 核心通用功能模块 │ └── src/main/j…

[KaibaMath]1030 关于f(x)=2^x-4x在[3, +∞)上单调递增的证明

本文基于求导给出函数f(x)=2^x-4x在[3, +∞)上单调递增的证明。

【源码解读之 Mybatis】【核心篇】-- 第8篇:ResultSetHandler结果集处理

【源码解读之 Mybatis】【核心篇】-- 第8篇:ResultSetHandler结果集处理第8篇:ResultSetHandler结果集处理 1. 学习目标确认 1.0 第7篇思考题解答 思考题1:DefaultParameterHandler的参数值获取为什么要设计优先级策…

samba的常见问题

环境: Server ip : 10.177.245.232 client ip : 10.177.245.230挂载之后的权限问题: Server: Smb.confClient: Smbclient --list=10.177.245.232 mount -t cifs //10.177.245.232/user1 /test/ -o username=user…

2025年佛山地区桶装水配送服务商推荐:比较好的桶装水送水电

本榜单聚焦佛山本地桶装水配送服务需求,结合用户真实反馈、服务覆盖能力与口碑评价,筛选出五家靠谱服务商,为家庭及企业用户提供精准选型参考,解决饮水配送的时效、安全与成本痛点。 TOP1 推荐:佛山市水专家电子商…

2025年中国十大知名的活动策划企业推荐:诚信的活动策划企业

本榜单依托全维度市场调研与真实行业口碑,深度筛选出十家标杆企业,为企业选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:万贝(上海)文化传播有限公司 推荐指数:★★★★★ 口碑评分:国内首推的知名活…

tts服务

tts服务GitHub - zuoban/tts: tts 服务 漫思

2025年高温测试机构推荐与高温实验机构排名,高温试验品牌企

在工业制造、航空航天、汽车电子等领域,高温测试是验证产品可靠性与环境适应性的核心环节。精准的高温试验数据不仅关乎产品质量安全,更直接影响企业的市场竞争力与行业准入资格。面对市场上良莠不齐的检测机构,如何…

2025年十大接地箱定制生产厂家排行榜,专业的接地箱厂家推荐

为帮助电力企业高效锁定适配自身需求的接地箱合作伙伴,避免选型走弯路,我们从技术研发实力(如专利数量、产学研合作深度)、产品工艺水准(含原材料质量、防护等级)、全周期服务质量(覆盖定制方案到售后维护)及真…

KFCoder - 敏捷冲刺日志-1st

第 1 篇 Scrum 冲刺博客(2025 年 11 月 27 日) 一、团队成员 Alpha 阶段认领任务成员 认领任务(关联 Work Item ID) 任务类型 预估工时(小时)徐新曜 SB01(后端基础架构搭建)、SB05(用户登录接口)、SB15(打卡…

自动驾驶中的传感器技术75——Navigation(12) - 详解

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

Spring AI实现一个简单的对话机器人

在其他地方查看本文:Spring AI实现一个简单的对话机器人 - Liu Zijians Blog - 一个个人博客网站本文通过Spring AI基于DeepSeek大模型,以Prompt模式,开发一个智能聊天机器人,并进行对话。Spring AI必须基于jdk-21…

惠算科技 GEO 优化优选惠州本地生活推荐:生成式引擎优化时代的本地商家获客破局指南

在惠州本地生活领域,生成式引擎优化(GEO)正展现出巨大的市场潜力。据相关数据显示,惠州本地生活 GEO 市场规模近年来以每年 30% 的增长率快速扩张。像惠算科技 GEO、一些知名的 AI 搜索优化工具以及具备意图识别功…

Genie 2:大规模基础世界模型的技术突破

本文介绍了Genie 2基础世界模型的技术架构与能力,这是一个能够从单张提示图像生成可交互3D环境的扩散模型。模型支持键盘鼠标控制,具备长时记忆、物理模拟、角色动画等能力,为具身智能体训练提供无限多样的虚拟环境…