
KMP
dtwd886
这个作者很懒,什么都没留下…
展开
-
杭电2594
模板稍微改一下就可以了#include #include #include using namespace std;char s1[51000],s2[51000];int Next[51000];void GetNext(){ int len; len=strlen(s2); Next[0]=-1; Next[1]=0; int i=1;原创 2015-11-13 20:52:31 · 283 阅读 · 0 评论 -
POJ1961
这题要注意一定要从2到N枚举:且判断条件为两个:前面是为了判断子串满足循环节的整数倍,后面的判断是为了判断子串中至少有两个循环节#include #include #include using namespace std;char s[1000010];int Next[1000010];void Kmp(){ Next[0]=-1; Next[1]=0;原创 2015-11-13 21:03:56 · 339 阅读 · 0 评论 -
杭电2087
#include #include #include using namespace std;char s1[1100],s2[1100];int Next[1100];int sum;void GetNext(){ int len; len=strlen(s2); Next[0]=-1; Next[1]=0; int i=1; in原创 2015-11-13 21:10:02 · 481 阅读 · 0 评论 -
杭电1686-KMP模板题
#include char W[10010],T[1000010];int Next[10010];void getNext(){ int len=strlen(W); int i,j; i=0; j=-1; Next[0]=-1; while(i<len) { if(j==-1||W[i]==W[j])原创 2017-07-12 12:37:04 · 387 阅读 · 0 评论 -
杭电1867
#include char W[100010],T[100010];int Next[100010];void getNext(char W1[]){ int len=strlen(W1); int i=0,j=-1; Next[0]=-1; while(i<len) { if(j==-1||W1[i]==W1[j])原创 2017-07-12 13:17:30 · 222 阅读 · 0 评论