集训游记 7.17-7.18 数据结构
数据结构
线段树
单点修改,区间查询
只需要考虑区间维护什么信息可以通过子区间快速合并出当前区间的答案.
先确定出需要的信息,模拟合并过程是加入需要的信息.
序列上和相同数字位置有关的问题,考虑前驱表示法.
记
例
考虑有若干容易检查的限制来刻画等差序列.
- 区间
. - 区间
的同余系相同. - 区间中无重复数字.
满足这三个条件,区间中的数只可能是
在检查区间
静态数点问题的差分
寻常的矩形数点,如果没有修改,可以离线
区间加区间
考虑维护差分数组的
因为有
标记
设计标记考虑的两点:
- 标记和标记的合并.
- 标记和信息的合并.
例:区间加区间
trie 树
常用于字典序贪心.
例题:
P8511 [Ynoi Easy Round 2021] TEST_68
堆,并查集
分裂搜索、合并单调性
例题:
线性并查集
没用的东西!
例题:
多次区间覆盖,询问最终序列上每个点的颜色.
把序列划分成若干长度为
LCA
树上差分通常会转换出这样的操作
- 单点加,查询点到根的和
- 点到根加,查询单点的值
对于第一种,考虑直接计算操作对可能询问的贡献.发现单点加只会影响到子树的答案.于是可以转化成在子树加单点查询.
对于第二种,考虑查询可能被计入询问的操作.发现只有子树内的询问会影响当前点上询问的答案.于是可以转化成单点加子树查询.
这种考虑操作对询问的贡献然后改换维护方式的转化,LXL 把其称为 数据结构反演.
字符串哈希
没什么好说的
分块
例题选讲,杂项,一些理论
树上直径
对于树上点集
由此扩展,对于树上两个点集
取模复杂度均摊
考虑一个数对
自由度分析
带区间修改的线段树,区间信息通常需要保证是
比如经典的问题:区间加法,求区间
寻常线段树求解问题一般不带有额外的变元——因为维护信息个数受限.比如可以维护区间的最大值或最小值.但区间
这时我们应该果断放弃考虑寻常的线段树——要么思考高维数据结构,要么思考分块等其他数据结构.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App