数据结构维护技巧(长期更新)
拜谢lxl
维护函数复合
大概是每个位置上有一个函数
有个东西叫插入-标记-回收算法。
首先将所有询问离线,然后拿扫描线扫一遍序列。维护一个集合
-
插入:扫到
后,如果这个地方是某个询问的起始位置,那么久把这个询问加入 。 -
标记:从
到 ,对 中所有询问的影响是一样的,通常在 上打标记实现。 -
回收:存在以
为右端点的询问,那么需要从 中取出以 为右端点的询问的答案。通常需要记录一下询问 在 中的位置以实现快速查询。
I.QOJ # 8672. 排队
每个位置上有个函数
Sol:
会上面那个东西就很简单了。在每个询问开头和结尾处记录一下。拿扫描线扫这个序列,遇到一个询问就插入。用一个FHQ-Treap维护
插入一个点后存一下这个询问对应的点的编号,询问的时候直接找到那个点,然后暴力下传根到这个点路径上的标记,再查询其值。因为FHQ的树高保证了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效