![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串板子
文章平均质量分 53
星辰大少主
重庆oier
展开
-
板子:马拉车算法、回文树
两个处理回文串的利器。马拉车可以求出每个字符为中心的最长回文串。回文树可以统计本质不同的回文串数量以及每个回文串的个数,以下标i结尾的回文串个数。马拉车原理首先在第一个位置插入一个’$’防止溢出,然后再所有字符之间插入’#’来处理奇偶回文串的问题。大概原理就是如过当前回文串最右端包括了当前区间,那么就可以通过对称点得到一个初始值,如果不在初始值就为1。然后暴力匹...原创 2018-04-08 12:25:48 · 386 阅读 · 0 评论 -
板子:KMP、AC自动机、trie图、fail树
前言KMP是一个经典的字符串匹配算法。然后AC自动机是基于KMP思想的一个多模板匹配算法。trie图是AC自动机的一个优化。fail树是AC自动机中fail指针构成的有特殊性质的树。KMP算法算法原理设两个字符串长度为n和m。两个模板匹配,如果暴力匹配是暴力枚举起点,最坏时间复杂度O(n * m * min(n,m) )利用一个叫做失配指针的东西,f[i...原创 2018-04-08 12:26:35 · 353 阅读 · 0 评论 -
板子:trie以及权值线段树查找异或
分类简述一般的trie并没有什么特别的,可以O(n)进行字符串匹配。二进制trie这不是做字符串匹配的,而是查找最大异或和,从高位贪心即可,高位不够补0可持久化trie单纯的给trie加个可持久化权值线段树二进制trie注意: - 充分理解在高层结点决策的思想,因为边才是权值。 - 直接一位对一位,调位置太麻烦了。 - 注意那个bool运算...原创 2018-04-08 12:27:56 · 251 阅读 · 0 评论 -
板子:后缀数组
简介把字符串的后缀提出来,然后按照字典序排序,sa[i]表示排名为i的后缀这样可以利用单调性等快速做很多操作。操作重要数组:SA和heightST表:用于O(1)查询两个后缀的最长公共前缀常见操作技巧分组:对于每一个height值几个巧妙的题目不重叠:直接判断后缀的值就好了,通常会分组。不相同子串个数:子串总数-height之和,证明就是把每个后...原创 2018-04-08 12:28:28 · 216 阅读 · 0 评论