标签:技术分享 opened sed class cst tps ext include family
再来个洛谷模板题的链接
最后是代码:
1 #include<cstdio> 2 #include<cstring> 3 int lenT,lenP,k; 4 int next[1001]; 5 char T[1000001],P[1001]; 6 void make_next(){ 7 for(int i=1;i<lenP;i++){ 8 while(k&&P[i]!=P[k]) 9 k=next[k-1]; 10 if(P[i]==P[k]) 11 k++; 12 next[i]=k; 13 } 14 } 15 int kmp(){ 16 k=0; 17 for(int i=0;i<lenT;i++){ 18 while(k&&P[k]!=T[i]) 19 k=next[k-1]; 20 if(P[k]==T[i]) 21 k++; 22 if(k==lenP) 23 printf("%d\n",i-lenP+2); 24 } 25 } 26 int main(){ 27 scanf("%s",T); 28 scanf("%s",P); 29 lenT=strlen(T); 30 lenP=strlen(P); 31 make_next(); 32 kmp(); 33 for(int i=0;i<lenP;i++) 34 printf("%d ",next[i]); 35 return 0; 36 }
完了
标签:技术分享 opened sed class cst tps ext include family
原文地址:http://www.cnblogs.com/jsawz/p/6737091.html