文章分类 - 算法学习笔记
摘要:记录机房终于被解决的疑难杂症,虽然但是仍然停留在较为肤浅的理解层面上
阅读全文
摘要:一点(口胡)概念 · \(endpos\):一个后缀在原串中出现位置的集合,介于 \(SAM\) 的性质,两个状态的 \(endpos\) 要么不交要么有包含关系 · 节点:表示一个状态,即 \(endpos\) 相同的等价类所表示的所有子串 · 边:也称作转移,上面有字符。类似于 \(Trie\)
阅读全文
摘要:原根 实际上求法比较的暴力,一句话说就是判定其存在后 \(O(n^{0.25})\) 地枚举最小的原根然后粗暴地找出剩下的原根 \((Updating \dots)\) 同余方程 \(Cipolla\) 算法 解决类似求 \(a^{k} \equiv b \bmod p\) 中给定 \(a,k,p\
阅读全文
摘要:一、引入 后缀数组中存储字符串 \(S\) 的所有后缀按字典序排序后的结果,主要需要 \(sa, rk\) 两个数组进行求解,具体而言: \(sa[i]\) 存储字典序第 \(i\) 小的后缀编号(即起始下标)//后缀数组 \(rk[i]\) 存储后缀 \(i\) 的排名 //排名数组 示意图: 二
阅读全文
摘要:强调强调再强调:多项式的空间要开到 \(4\) 倍!! 引入 对于多项式乘法,暴力计算只能做到 \(O(n^2)\),而通过将多项式系数 \(c_i\) 利用复平面内的单位根 \(\omega_{n}^{s}\) 转换为 \(F(\omega_{n}^{s})\) 的点值表达形式,可以利用复数的运算
阅读全文
摘要:一句话概括,其实就是在 \(Trie\) 树上进行 \(Kmp\) 操作匹配字符串的一种有限状态自动机 \((DFA)\) 在\(AC\)自动机上的每个节点所表示的含义与传统的 \(Trie\) 树略有不同。\(AC\)自动机上的节点表示前缀结尾为该字符的一种状态。\(AC\)自动机在失配时通过找寻
阅读全文
摘要:·\(Splay\)(伸展树) 是一种通过将所有操作转换至根节点位置以改变树的结构,保证均摊时间复杂度(操作均为 \(O(log_{n})\) )的一种平衡树,主要通过上旋操作 \((rotate)\) 与双旋操作 \((splay)\) 维持树的结构与 \(bst\) 性质 更形象点说,该平衡树将
阅读全文
摘要:又称“无旋 Treap” 主要通过分裂操作 \((split)\) 与合并操作 \((merge)\)维护 \(bst\) 的性质,在进行插入、删除、查询等操作时,通过权值分裂/排名分裂的方式将原平衡树分裂为 \(x\),\(y\) 两颗树进行操作(结合子树的 \(siz\)),后合并分裂的子树 例
阅读全文
摘要:注:两种算法严格来说均属于“优雅的暴力”,故—— 该怎么暴力维护时就怎么维护 分块 考虑如下形式的问题: 给定长度为 \(n\) 的序列,\(m\) 次操作,可以是单点修改+区间查询 / 区间修改+单点查,不过数据规模 \(1e5\) 直接暴力做显然是 \(O(1)\) 与 \(O(n^2)\) 的
阅读全文
摘要:启发式搜索当中的 \(A*\),\(IDA*\),在传统的搜索算法基础上引入估价函数 \(h[x]\) 对当前结点/状态进行估价以更好地扩展路径,可以近似看作: \(优先队列BFS/Dijkstra+h[x]\) -> \(A*\) \(DFS\)(迭代加深)\(+h[x]\) -> \(IDA*\
阅读全文
摘要:· 传统分治 主要思想是把大规模的问题化小规模后解决,后合并两区间统计答案(一般通过二分的思想取 \(mid\) 实现) · 例题 \(P1257\) 平面上的最接近点对 \(P1429\) 平面最近点对(加强版) \(P7883\) 平面最近点对(加强加强版) 分析:(不想写) 关于 \(O(n^
阅读全文

浙公网安备 33010602011771号