才学了KMP,拿这题来练练手……(不过似乎有点小题大做了……
这就是一题水水的KMP模板,匹配若干次,每一次从上次匹配后的位置开始,直到匹配失败。
虽然用的算法“高级”一点,但是居然比暴力慢了40MS啊啊啊……
Code:
1 #include2 using namespace std; 3 const int P=15; 4 const int S=1000005; 5 char p[P],s[S]; 6 int next[P],pl,sl; 7 void getnext(){ 8 next[0]=-1; 9 int i=0,j=-1;10 while(i =sl||s[x+pl]==' ')){44 if(flag==0){45 flag=1;46 loc=x;47 }48 ans++;49 }50 }51 if(flag)52 cout< <<' '<