摘要: ##后缀数组 后缀$S[i]:S[i]=S[i,|S|]$ 后缀排序:将所有后缀 $S[i]$ 看作独立的串,放在一起按照字典序进行升序排序。 后缀排名 $rk[i]:rk[i]$ 表示后缀 $S[i]$ 在后缀排序中的排名,即他是第几小的后缀。 后缀数组 $sa[i]:sa[i]$ 表示排名第 $ 阅读全文
posted @ 2022-10-31 22:16 I_N_V 阅读(49) 评论(0) 推荐(0) 编辑
摘要: ##前置知识 ###反转串 R(S) 一个字符串 S = S[1]S[2] · · · S[n] 其反串为R(S) = S[n]S[n − 1] · · · S[1]。 ###回文串性质 ####回文半径二分性 回文半径-1 等价于同时删掉回文串的首尾字母,依然是回文串。 ####回文串和Borde 阅读全文
posted @ 2022-10-27 20:53 I_N_V 阅读(99) 评论(0) 推荐(0) 编辑
摘要: ##背景 给出一个字典,和若干询问:多少个字典串在询问串中出现过。 即单串与多串的匹配问题。 #AC自动机 AC 自动机基于 Trie,将 KMP 的 Border 概念推广到多模式串上。 AC 自动机是一种离线型数据结构,即不支持增量添加新的字符串。 AC 自动机常用于将字符串询问类的问题进行离线 阅读全文
posted @ 2022-10-07 14:03 I_N_V 阅读(66) 评论(0) 推荐(0) 编辑
摘要: #Trie树 ##定义 $Trie 是一棵有根树,每个点至多有 |Σ| 个后继边,每条边上有一个字符。$ $每个点表示一个前缀:从跟到这个点的边上的字符顺次连接形成的字符串。$ $每个点还有一个终止标记:是否这个点代表的字符串是一个字典串。$ $可以支持向 Trie 插入新字典串,删除字典串,查询某 阅读全文
posted @ 2022-10-06 15:09 I_N_V 阅读(27) 评论(0) 推荐(0) 编辑
摘要: ##Border 如果字符串 $S$ 的同长度的前缀和后缀完全相同,即 $Prefix[i] = Suffix[i]$ 则称此前缀(后缀)为一个 $Border$(根据语境,有时 $Border$ 也指长度)。 特殊地,字符串本身也可以是它的 $Border$,具体是不是根据语境判断。 ##周期和循 阅读全文
posted @ 2022-09-29 22:20 I_N_V 阅读(30) 评论(0) 推荐(0) 编辑
摘要: ##大步小步算法(baby step giant step,BSGS) 是一种用来求解离散对数(即模意义下对数)的算法,即给出 $a^x \equiv b \pmod m$ 中$a,b,m$ 的值(这里保证 $a$ 和 $m$ 互质,求解 $m$ 既然保证了 $a$ 和 $m$ 互质,那么很容易联想 阅读全文
posted @ 2022-09-28 23:03 I_N_V 阅读(209) 评论(0) 推荐(0) 编辑
摘要: #虚树 讲解 ##模板 点击查看代码 struct Tree{ //原树 int tot,head[maxn],nx[maxn],to[maxn]; ll w[maxn]; void add(int x,int y,ll z){ to[++tot]=y;nx[tot]=head[x];head[x] 阅读全文
posted @ 2022-07-26 16:45 I_N_V 阅读(32) 评论(0) 推荐(0) 编辑
摘要: ##分治 分治作为一种思想在算法中被广泛使用,比如归并排序、线段树之类的算法都是使用了分治的思想。 除了这些算法的底层原理,分治单独拿出来运用的其中一种场景是作为一种统计类算法使用。 统计类问题一般指不带修改,静态查询类的问题。但是不同于静态查询问题,统计类问题一般要求“全查”,例如枚举所有的子区间 阅读全文
posted @ 2022-07-20 13:49 I_N_V 阅读(40) 评论(0) 推荐(0) 编辑
摘要: ##动态树 树上查询问题是指,给定一个图论中的树结构,需要对树上的子树或者链进行一系列增删改查的问题。 和序列问题中一般常说的“动态”和“静态”不同。 动态树问题一般指树结构发生改变。 *注意:一般对于纯换根(change root)操作,不视为是动态树问题。 #LCT结构 ###前置知识1:链分解 阅读全文
posted @ 2022-07-19 15:02 I_N_V 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 参考博客 ##子树类查询问题 dsu on tree和长链剖分都是解决子树类静态查询问题的统计类算法。 这类问题首先要是“子树”查询,并且是“静态”不带修改的。 注意某些问题其实不太有必要上dsu on tree,比如子树元素和,子树元素最大值之类的。(可合并区间信息) 例如子树众数,子树元素种类数 阅读全文
posted @ 2022-07-13 22:57 I_N_V 阅读(71) 评论(0) 推荐(0) 编辑