标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7361 Accepted Submission(s): 2622
1 /*by SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 const int mxn=60000; 9 int nxt[mxn]; 10 int f[mxn]; 11 char a[mxn],b[mxn]; 12 int la,lb; 13 void getnext(){ 14 int i,j=-1; 15 nxt[0]=-1; 16 for(i=1;i<lb;i++){ 17 while(j>=0 && b[j+1]!=b[i])j=nxt[j]; 18 if(b[j+1]==b[i])j++; 19 nxt[i]=j; 20 } 21 return; 22 } 23 int main(){ 24 while(scanf("%s%s",b,a)!=EOF){ 25 la=strlen(a); 26 lb=strlen(b); 27 getnext(); 28 int i,j=-1; 29 for(i=0;i<la;i++){ 30 while(j>=0 && b[j+1]!=a[i])j=nxt[j]; 31 if(b[j+1]==a[i])j++; 32 f[i]=j; 33 } 34 if(f[la-1]==-1){ 35 printf("0\n"); 36 } 37 else{ 38 for(i=0;i<=f[la-1];i++)printf("%c",b[i]); 39 printf(" %d\n",f[la-1]+1); 40 } 41 } 42 return 0; 43 }
HDU2594 Simpsons’ Hidden Talents
标签:
原文地址:http://www.cnblogs.com/SilverNebula/p/5865761.html