kmp
acblacktea
永不放弃
展开
-
hdu 3613 扩展kmp求回文串
新建一个串为给定串的反转, 原串跟新串匹配求得是前缀回文, 新串跟原串匹配求得是后缀回文。#include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<iostream> #include<vector> using namespace std; int va[30],pre[510000],la原创 2016-07-10 19:24:58 · 651 阅读 · 0 评论 -
hdu 3374 next表,最大最小表示法模板
设两个指针i=0,j=1,一个长度变量k=0 a[i+k]==a[j+k] k++; a[i+k]>a[j+k] i = i+k+1; a[i+k]#include<cstdio> #include<algorithm> #include<iostream> #include<string.h> using namespace std; char a[1000005]; int nexta[原创 2016-07-10 15:29:47 · 379 阅读 · 0 评论 -
HDU-1711-kmp模板
#include<cstdio> int a[1100000],b[11000],n,m,next[11000],t; void getNext() { next[1] = 0; int i=1,j=0; while(i<m) { if(j==0||b[i]==b[j]){ i++; j++; i原创 2016-04-04 17:58:03 · 326 阅读 · 0 评论 -
poj 3376 扩展kmp求回文加字典树
回文串的性质 : 它的每个前缀都是它的后缀, 正序串和反序串kmp得后缀回文串的各个长度 反序串和正序串kmp得前缀回文串的各个长度 kmp求出所有串的前缀回文串和后缀回文串然后把正序串依次存入字典树,然后枚举反序串进行查询与字典树上的串进行匹配得出结果。 坑了两个晚上#include<cstdio> #include<cstring> #include<vector> #define LL原创 2016-07-11 23:21:12 · 888 阅读 · 0 评论 -
hdu 4763 Theme Section 扩展kmp
扩展kmp,next表求前缀和后缀的公共部分同时记录这个前缀是否在这个总串去除它长度的前缀和后缀后依然存在,最后拿出符合结果的最大前缀#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; char a[1000010]; int nexta[1000010],la;原创 2016-07-12 22:08:25 · 233 阅读 · 0 评论