
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 · 549 阅读 · 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 · 609 阅读 · 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 · 815 阅读 · 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 · 703 阅读 · 0 评论 -
poj2185 Milking Grid (最小覆盖矩阵)
//给定一个由字符组成的矩阵,求出它的面积最小的覆盖矩阵//可以求出每一行的最小覆盖子串的长度,只要对这些长度求最小公倍数,就可以获得最小覆盖矩阵的宽度。//同理,求出每一列的最小覆盖子串的长度,再求最小公倍数,就可以获得最小覆盖矩阵的高度了。# include # include # include using namespace std;char a[10010][100];i原创 2014-08-14 22:13:54 · 1453 阅读 · 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 · 737 阅读 · 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 · 803 阅读 · 0 评论