# Manacher算法 > 形象的被译为**马拉车算法** 这个算法用于处理简单的回文字符串的问题。可以在 $O(n)$ 的复杂度内处理出每一个位置为中心的回文串的最长长度。 为了避免出现偶数长度的回文串,导致过多的分类讨论,我们预处理一下字符串。 例如:`jeefy` 我们可以预处理成 `^#j
# Trie树 Trie(字典树)是一种用于实现字符串检索的多叉树。 Trie的每一个节点都可以通过 `c` 转移到下一层的一个节点。 > 我们可以看作可以通过某个字符转移到下一个字符串状态,直到转移到最终态为止。这是后话…… 我们以插入了字符串 `ab`,`aa`,`b` 三个字符串的Trie树为
组合数学基础 本文部分运用到了生成函数的知识 如果直接食用本文结论,请忽略下列链接。 生成函数参考博客:普通型生成函数 - Ricky2007 - 博客园 我认为讲的不错 组合数学非常有用!我们先从一点点简单的性质开始 简单原理 加法原理 这非常简单,我们举一个例子即可:考虑我有 $5$ 个红苹果和
快速傅里叶变换详解
OI中常用的四种平衡树细述:Treap,FHQ-Treap,Splay,WBLT。 前置知识:二叉搜索树的基本操作
树上启发式合并详解。 例题:CodeForces 600E 和一道我们考试的题
# AC自动机 **前置知识**: - 字典树:可以参考我的另一篇文章 [算法学习笔记(15): Trie(字典树)](https://www.cnblogs.com/jeefy/p/17101290.html) - ~~KMP~~:可以参考 [KMP - Ricky2007](https://ww
# 平衡树(二) > 平衡树(一)链接:[算法学习笔记(18): 平衡树(一) - jeefy - 博客园](https://www.cnblogs.com/jeefy/p/17204439.html) 本文中将讲述一下内容: - 可持久化Treap - 基于`Trie`的 *类* 平衡树(后文称之
# 逆序对与原序列 > 在《组合数学》中有这么一个从逆序列构建一个排列的过程……而刚好有一场考试有考了类似的问题,于是在此总结一下。 [TOC] ## 逆序列 假定我们有序列 $P$ 是 $\{1, 2, \cdots, n\}$ 的一个排列。如果 $i p_j$ 则称数对 $(p_i, p_j)$
# 马尔可夫链中的期望问题 > 这个问题是我在做 [[ZJOI2013] 抛硬币 - 洛谷](https://www.luogu.com.cn/problem/P3334) 这道题的时候了解的一个概念。 > > 在网上也只找到了一篇相关的内容:[# 马尔可夫链中的期望问题](https://zhua
# 矩阵树定理 > 本文不作为教学向文章。 > > 比较好的文章参考: > > - [矩阵树-定理以及凯莱公式](https://zhuanlan.zhihu.com/p/593934554) > > - [【学习笔记】矩阵树定理(Matrix-Tree)_繁凡さん的博客-CSDN博客](https
# 计算几何 ## 向量 > 高一知识,略讲。 #### 向量外积 若 $\vec x = (x_1, y_1), \vec y = (x_2, y_2)$,则有 $\vec x \times \vec y = x_1 y_2 - y_1 x_2$。 或者表示为 $|\vec x||\vec y|
后缀排序 本文不作为教学向文章。 开篇膜拜 Pecco:算法学习笔记(84): 后缀数组 - 知乎 (zhihu.com) 有些时候,其实 \(O(n \log^2 n)\) 的排序也挺好。又短又简单。 其中 \(rk[i]\) 表示从第 \(i\) 个字符开始的后缀的排名,\(sa[i]\) 表示
筛法 本文不作为教学向文章。 线性筛 线性筛是个好东西。一般来说,可以在 \(O(n)\) 内处理几乎所有的积性函数。 还可以 \(O(n)\) 找出所有的质数……(废话 杜教筛 放在偏序关系 \((\Z, |)\) 中卷积…… 如何快速的求 \(S(n) = \sum_{i = 1}^n f(i)
# 狄利克雷卷积和莫比乌斯反演 > 看了《组合数学》,再听了学长讲的……感觉三官被颠覆…… [TOC] ## 狄利克雷卷积 如此定义: $$ (f*g)(n) = \sum_{xy = n} f(x)g(y) $$ 或者可以写为 $$ (f * g)(n) = \sum_{d | n} f(d) g
杂项 目录杂项代码规范算法优化的本质记忆化搜索基于边的记忆化动态规划树上每一个点求答案计数题关于仙人掌 DAG 的拓扑序计数关于微扰贪心的证明组合数前缀和单位根反演\(O(n^2)\) 状态求和矩形式子求和\(O(n^2)\) 状态 \(O(n)\) 单点问题CDQ 分治FFT 循环卷积根号多项式算
KMP算法是一种高效的字符串匹配算法,它的核心思想是利用已经匹配成功的子串前缀的信息,避免重复匹配,从而达到提高匹配效率的目的。KMP算法的核心是构建模式串的前缀数组Next,Next数组的意义是:当模式串中的某个字符与主串中的某个字符失配时,Next数组记录了模式串中应该回退到哪个位置,以便继续匹...
分块 这是一种基于根号的算法,核心为大块标记,散块暴力,做到复杂度的平衡。 可能第一个想到于此相关的就是莫队吧,这是利用分块优化暴力的方法。 目录分块Rmq Problem / mex[国家集训队] 排队 - 洛谷[TJOI2009] 开关 - 洛谷[Violet] 蒲公英 - 洛谷小小总结 Rmq
一、前言 2014年,Ross Girshick提出RCNN,成为目标检测领域的开山之作。一年后,借鉴空间金字塔池化思想,Ross Girshick推出设计更为巧妙的Fast RCNN(https://github.com/rbgirshick/fast-rcnn),极大地提高了检测速度。Fast
KMP算法 KMP算法是一个字符串算法,通常用于匹配字符串。 KMP算法的原理 如果我们暴力枚举下标 \(i,j\),\(i\) 是文本串的下标,\(j\) 是模式串(你要在文本串中匹配的字符串)的下标,时间复杂度 \(O(NM)\),其中 \(N,M\) 分别为文本串和模式串的长度。 我们看一下匹