Ntokisq 的 [DS] sqrt technology 题单的学习笔记。
对 转化成 下标,变为求区间最长连续上升子序列。
直接 dp ,回滚莫队 。
强制在线,考虑分块。整块之间答案预处理。散块对整块,对块 预处理出 和 的答案,散块每个扫一遍。散块对散块,先算左右散块各自的,再算左散块对右散块的。利用右散块每个数的答案贡献到初始值的位置,扫左散块同时更新。
,时间 ,空间 。
这个是大众题目,预处理出整块间的答案。把同一个值的所有下标塞进一个 vector
,暴力扫左右散块,若 vector
里 的下标存在就使 。
时间 ,空间 。
考虑分块。先想查询。
对于块的内部,每个块预处理 ,表示第 个块内, 到 的最短距离,要将 在块内离散化。对于块到块,维护第 个块值 最早出现位置和最晚出现位置 ,贪心算下答案。
整块修改。若当前块没出现 ,直接跳过。若当前块没出现 ,直接将 对应的离散值传给 。若当前 均出现,暴力更新关于 所有信息。每次这样修改都会使块内的颜色少一,最多修改 次,复杂度没问题。
时间 ,空间 。
启发式合并解决合并操作。复杂度瓶颈在于找邻居,根号分治即可。 小于 暴力扫自己的相邻点,大于 暴力维护每种颜色的邻居。
应该是时间 ,空间 。
先序列分块。查询利用值域分块。修改就块内离散化,整块部分类似天降之物。要是 都存在就暴力修改,每次减少一个颜色,总颜色是 的,摊下来没错。
时间 ,空间 。
序列分块,整块对整块可以预处理相邻块的贡献然后做二维前缀和,这部分可以归并。整块内部答案直接 预处理,散块内部可以维护 表示向前向后的答案,散块对整块可以处理值域前缀和,也可以维护 与块 之间的逆序对数。散块到散块就归并一下,提前预处理每个块排序后的数组。
同一个块内就容斥一下就好。
时间 ,空间 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!