POJ - 2406 题意: 给出一个字符串,要把它写成(x)n的形式,问n的最大值。 这题是求整个串的重复次数,不是重复最多次数的字串 这题很容易想到用KMP求最小循环节就没了,但是后缀数组也能写 后缀数组写法放在后面那一题,SPOJ - REPEATS是求子串类型,KMP就不好处理了 这里放下处 ...
分类:
编程语言 时间:
2019-08-09 23:37:22
阅读次数:
121
目的:在字符串T中查找字符串P的出现位置,预处理P字符串得到fail数组 时间复杂度:O(|P|+|T|) 自用模板: #include <iostream> #include <string.h> using namespace std; int Next[1110]; void get_Next ...
分类:
编程语言 时间:
2019-08-09 22:00:01
阅读次数:
109
Seek the Name, Seek the Fame "POJ 2752" 本题使用的算法还是KMP 最主要的片段就是前缀数组pi的理解,这里要求解的纸盒pi[n 1]有关,但是还是需要使用一个循环来依次找到前面符合的前缀(所谓符合就是可以保持既是前缀也是s的后缀的子串长度)。 include ...
分类:
编程语言 时间:
2019-08-09 13:13:20
阅读次数:
69
Power String "POJ 2406" 字符串压缩模板题,但是是求有多少个这样最短的子串可以组成s。 include include include include include using namespace std; const int N=10000001; int pi[N]; v ...
分类:
其他好文 时间:
2019-08-09 13:06:45
阅读次数:
64
参考博客: "KMP算法(kuangbin)" 另讲得比较好的博客或网站: "前缀函数与 KMP 算法" "KMP算法(研究总结,字符串)" cpp const int maxn=1e5; int Next[maxn]; / 求前缀数组 / / t[0]对应的Next数组值为Next[1] / / ...
分类:
编程语言 时间:
2019-08-09 01:53:37
阅读次数:
162
前提技能: "前缀数组" 参考博客: "KMP算法(kuangbin)" cpp const int maxn=1e5; int Next[maxn]; / 求前缀数组 / / t[0]对应Next[1] / / Next[0]= 1 / void getNext(string t) { int i ...
分类:
编程语言 时间:
2019-08-09 01:13:19
阅读次数:
90
http://acm.hdu.edu.cn/showproblem.php?pid=6629 板子题 ...
分类:
其他好文 时间:
2019-08-07 11:57:23
阅读次数:
95
"UVA 12467 Secret Word" kmp+二分,二分枚举答案的长度,用kmp判断是否合法 cpp include using namespace std; define rint register int define rll register long long define lon ...
分类:
其他好文 时间:
2019-08-07 10:45:20
阅读次数:
95
next数组和extend数组 设有字符串S,T,next[i]表示T[i...len]与T[0..len]的最长公共前缀,extend[i]表示S[i...len]与T[0...len]的最长公共前缀,扩展kmp要做的就是把extend数组求出来. 思路 假设当前在匹配到s串的i位置,设p=i,然 ...
分类:
其他好文 时间:
2019-08-06 15:37:11
阅读次数:
123
```cpp #include using namespace std; const int maxn = 1e5+10; char s[maxn], t[maxn]; int nxt[maxn], ext[maxn], f[maxn], p[maxn]; //kmp void getNext(ch... ...
分类:
其他好文 时间:
2019-08-06 00:35:56
阅读次数:
83