摘要: 学习笔记#5:单调队列优化&斜率优化 单调队列 首先要搞懂什么是单调队列。 单调队列是一种求区间最值问题的一种方式,与其他 RSQ 问题的求解方法不同的是,它更善于解决滑动窗口式的 RSQ 问题,一般来说,假设我们要维护最大值,则需维护一个单调递减的队列,这样队首最大,每次取队首即可。而当队首不在我 阅读全文
posted @ 2024-02-18 21:38 水晶矩阵锭 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 学习笔记#4 :树状数组和 LIS 前言: 树状数组是和线段树类似的数据结构,更确切的说,树状数组能解决的问题,线段树都能解决,而线段树还能解决一些树状数组所不能解决的问题。因此线段树的应用范围比树状数组更广泛。但是,树状数组的常数更小,在同样的 \(\text{O}(n\log n)\) 复杂度下 阅读全文
posted @ 2024-02-18 19:49 水晶矩阵锭 阅读(37) 评论(0) 推荐(0) 编辑
摘要: Matrix 好闪,拜谢 Matrix! yysy,矩阵真的很戳我的xp。 引言 有的时候我们需要快速地递推,显然一位一位地递推,推到 \(1e18\) 这么多次肯定一下就超时了,这时我们就可以进行矩阵加速,具体就是借助矩阵乘法的结合律来辅助我们递推。 矩阵加速适用于求方案数、答案确定的数值的递推, 阅读全文
posted @ 2024-02-01 07:41 水晶矩阵锭 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 分为两种:A* 和 IDA* A* :BFS,极其类似Dijkstra堆优化 IDA* :迭代加深DFS,比A*好写,适用于限制深度的题 需要估价函数 \(h(x)\),作为判断是否先行搜索的基准。 A* 一个好的估价函数的选择会影响程序的最终效率。任意时刻下估价函数的值小于当前结点到目标结点的实际 阅读全文
posted @ 2024-02-01 07:40 水晶矩阵锭 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 说在前面 引言 树链剖分,是树上操作的常用算法,多用于求LCA、树上RSQ、树上RMQ等问题,与树上差分有共通之处。 前置知识 线段树 DFS序 图的存储与遍历 正文 有重链剖分和长链剖分两种方式,主流的方法是重链剖分,两者没太大区别,一个按siz,一个按dep而已。 我们要进行两次dfs: 第一次 阅读全文
posted @ 2024-02-01 07:39 水晶矩阵锭 阅读(12) 评论(0) 推荐(0) 编辑