字符串 - KMP
NotFound1
这个作者很懒,什么都没留下…
展开
-
|poj 2406|KMP|Power Strings
poj传送门 可以知道,在一个字符串里的最短周期是ms=n−f[i]ms=n-f[i], 其中ff是kmp中的失配函数。 如果ms|nms|n, 那么输出n/ms, 否则输出1.#include<cstdio> #include<algorithm> #include<cstring> #define ms(i,j) memset(i,j, sizeof i);原创 2017-02-06 15:39:19 · 436 阅读 · 0 评论 -
|Hdu 2594|KMP|Simpsons’ Hidden Talents
Hdu传送门 连接s1,s2, kmp求前缀和后缀/* hdu 2594 KMP 教训: 1、给了两个字符串,有时可以连接解题 */#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(原创 2017-04-09 17:04:31 · 429 阅读 · 0 评论 -
|Hdu 3336|KMP|动态规划|Count the string
poj传送门 如果next[j]=inext[j] = i, 那么说明[0,i−1][0, i-1]与[j−i,j−1][j-i, j-1]部分相同 并且i,ji,j之间没有更多的前缀 设dp[i]dp[i]为前ii个字符中前缀出现次数 dp[i]=dp[next[i]]+1dp[i] = dp[next[i]]+1 /* hdu 3336 KMP+D原创 2017-04-09 15:52:18 · 541 阅读 · 0 评论 -
|Hdu 1711|KMP|Number Sequence
poj传送门/* hdu 1711 KMP 教训: 1、KMP的数组下标从0开始 */#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i);const in原创 2017-04-09 14:57:48 · 768 阅读 · 0 评论 -
|Hdu 3746|KMP|Cyclic Nacklace
Hdu传送门 注意一下分类讨论/* hdu 3746 KMP 教训:*/#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i);const int MAXN = 1原创 2017-04-09 12:44:14 · 443 阅读 · 0 评论 -
|poj 2752|KMP|Seek the Name, Seek the Fame
poj传送门/* poj 2752 教训: 1、注意f数组的意思就是前缀和后缀最长公共部分长度,灵话运用解题 */#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i原创 2017-04-09 12:08:29 · 777 阅读 · 0 评论 -
|poj 1961|KMP|Period
poj传送门/* poj 1961 教训: 1、kmp求循环节是n-f[n] */#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(i, j, sizeof i);const int MAXN原创 2017-04-08 23:21:57 · 595 阅读 · 0 评论 -
|POJ 3461|KMP|Oulipo
Poj传送门 纯KMP模板题,又复习了一下模板#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXL = 1000000 + 5; int T;原创 2017-03-05 21:14:34 · 448 阅读 · 0 评论 -
|Hdu 2087|KMP|剪花布条
Hdu传送门 KMP即可。注意不可重叠,用一个lastlast记录上一个不重复匹配成功的位置,之后如果匹配成功,记当前位置为ii,如果i−last>模式串长度i-last>模式串长度,即匹配成功,更新lastlast#include<cstdio> #include<algorithm> #include<cstring> #define ms(i,j) memset(i,j, siz原创 2017-02-08 12:05:21 · 354 阅读 · 0 评论 -
|算法讨论|KMP 学习笔记
题目 [KMP]poj 2406:kmp求最短循环节(周期) [KMP]poj 3461:KMP模板题 [KMP]Hdu 2087:kmp模板题模板及讲解输入两个字符串s1和s2,输出s2在s1中出现的位置(位置从0开始) inputabcdefghidefdddeeeffdefeddefoutput3920实质上是MP算法#include<cstdio> #include<a原创 2017-02-06 13:51:35 · 976 阅读 · 0 评论