KMP
lp_opai
我没有时间写一封简短的信,所以我写了一封长的。
展开
-
hdu 1711 Number Sequence(KMP)
# include # include # include using namespace std; int n,m,next[10010],a[1000010],b[10010]; void Getnext() { int i=0,j=-1; next[0]=-1; while(i<m) { if(j==-1||b[i]==b[j])原创 2014-08-11 20:00:15 · 517 阅读 · 0 评论 -
hdu 4300 Clairewd’s message (KMP)
给定一个翻译表,即第i个字母用哪个字母表示 再给一个串,里面前面为密文,后面为明文,密文一定是完整的,但明文不完整或可能没有 求这个完整的前面密文后面明文的串 # include # include # include using namespace std; int len; int next[100010]; char a1[100010],a2[1000原创 2014-08-12 21:02:25 · 563 阅读 · 0 评论 -
hdu 3746 Cyclic Nacklace (KMP求最小循环节)
//len-next[len]为最小循环节的长度 # include # include # include using namespace std; int len; char a[100010]; int next[100010]; void Getnext() { int i=0,j=-1; next[0]=-1; while(i<=len) {原创 2014-08-13 18:49:24 · 780 阅读 · 0 评论 -
poj3461 Oulipo (KMP模板题~) 前面哪些也是模板题 O.O
# include # include # include using namespace std; char a1[1000010],a2[1000010]; int next[1000010]; int len1,len2,cot; void Getnext() { int i=0,j=-1; next[0]=-1; while(i<=len1) {原创 2014-08-13 22:16:48 · 670 阅读 · 0 评论 -
poj2185 Milking Grid (最小覆盖矩阵)
//给定一个由字符组成的矩阵,求出它的面积最小的覆盖矩阵 //可以求出每一行的最小覆盖子串的长度,只要对这些长度求最小公倍数,就可以获得最小覆盖矩阵的宽度。 //同理,求出每一列的最小覆盖子串的长度,再求最小公倍数,就可以获得最小覆盖矩阵的高度了。 # include # include # include using namespace std; char a[10010][100]; i原创 2014-08-14 22:13:54 · 1384 阅读 · 0 评论 -
poj 2406 Power Strings (KMP)
# include # include # include using namespace std; int len; char a[1000010]; int next[1000010]; void Getnext() { int i=0,j=-1; next[0]=-1; while(i<=len) { if(j==-1||a[j]==a[原创 2014-08-13 20:34:56 · 706 阅读 · 1 评论 -
poj 3080 Blue Jeans (kmp暴力)
# include # include # include using namespace std; int next[100]; char pat[100]; char a[100][100]; int ma; int lenp; int n; void Getnext() { int i=0,j=-1; next[0]=-1; while(i<=lenp)原创 2014-08-15 15:46:59 · 772 阅读 · 0 评论