![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
2016cxg
这个作者很懒,什么都没留下…
展开
-
Manacher
Manacher:复杂度:O(n)基本问题:求字符串的最长回文子串 //Hihocoder1032#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std ;const int maxn = 1e6 + 10 ;char S[原创 2017-07-11 09:38:12 · 206 阅读 · 0 评论 -
kmp深入
KMP难题:对比较匹配的理解,在简单模板题里面,匹配比较的是数字的大小或者字符相等与否,而本题是相对大小KMP理解:kmp中模式串对匹配串的匹配是连续匹配,也就是如果模式串为123 ,则如果发生匹配,那么匹配串一定有123这样的字符子串,而1213都不能算是发生匹配//POJ 3167#include<iostream>#include<cstdio>#include<cstring>#in原创 2017-07-05 01:21:47 · 181 阅读 · 0 评论 -
AC自动机
//HDU2222#include<iostream> #include<cstring>#include<cstdio>#include<cstdlib>using namespace std ;const int maxn = 1e7 + 5 ;//匹配字符串的个数 int cnt ; //字典树树节点 struct node{ //字典树下一层节点 no原创 2017-07-14 17:03:29 · 189 阅读 · 0 评论 -
KMP基础
KMP基本思路:next[i]表示模式串x的第i位的前next[i]个数和前缀(从0开始的)的next[i]个数完全匹配(就像12和12一样,完全匹配)KMP基本问题:1.模式串x匹配主串y的次数 =>poj34612.循环串的判定条件:i%(i-next[i])==0 ( i表示字符串x的第i位 ) =>HDU33363.循环串A^K中K的计数问题(A为一个子串):如果字符串x是循环串,原创 2017-06-27 17:52:53 · 178 阅读 · 0 评论 -
后缀数组
//后缀数组模板#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std ; const int maxn = 1e5 + 10 ;/* 后缀数组 倍增算法*/int sa[maxn] , rank[maxn] , height[maxn] ;void calhe转载 2017-07-16 18:55:15 · 131 阅读 · 0 评论 -
后缀自动机SAM
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#include<map> using namespace std ;const int maxn = 1e5 ;struct state{ //step代表从root(就是0)到当前点的最长路径 //原创 2017-07-17 02:44:28 · 225 阅读 · 0 评论 -
扩展kmp
扩展kmp基础问题:求子串T在母串S的最大前缀匹配,即字符串S[i...lenS-1](i=0...lenS-1)和字符串T的最大前缀匹配。kmp和扩展kmp的辨析:当扩展kmp问题的最大前缀匹配数为lenT的时候,就是kmp的判断子串T是否在母串S中出现的问题,因此求最大公共前缀问题是kmp问题的扩展//HDU4333//注意本题除了使用扩展kmp求最大公共前缀,还是用kmp判断时候循环串#i原创 2017-07-09 00:20:51 · 271 阅读 · 0 评论 -
字符串hash
//HDU4622#include<iostream>#include<cstring>#include<algorithm>#include<vector>#include<set>#include<cmath>using namespace std ;//哈希函数的模 const int HASH = 10007 ;const int maxn = 2010 ;//哈希表结构原创 2017-07-17 19:06:24 · 344 阅读 · 0 评论