码迷,mamicode.com
首页 > 其他好文 > 详细

hihoKMP & POj3461

时间:2015-08-13 06:22:38      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

记录下模板。

刚学了一下,看了别人的一份模板,自己打了一下,以后就用这个吧

 1 #include <cstdio>
 2 #include <cstring>
 3 char s[1000005],ss[10005];
 4 int next[10005],ans;
 5 void getNext(int len){
 6     int i = 0,j = -1;
 7     next[0] = j;
 8     while(i<len){
 9         while(j!=-1&&ss[j]!=ss[i])j = next[j];
10         i++;j++;
11         if(j>=len)next[i] = next[j-1];
12         else next[i] = j;
13     }
14 }
15 void KMP(int len,int m){
16     int i = 0,j = 0;
17     while(i<len){
18         while(j!=-1&&ss[j]!=s[i])j = next[j];
19         i++;j++;
20         if(j==m){
21             ans++;j = next[j];
22         }
23     }
24 }
25 int main()
26 {
27     int T;scanf("%d",&T);
28     while(T--){
29         scanf("%s%s",ss,s);
30         ans = 0;
31         getNext(strlen(ss));
32         KMP(strlen(s),strlen(ss));
33         printf("%d\n",ans);
34     }
35     return 0;
36 }

 

hihoKMP & POj3461

标签:

原文地址:http://www.cnblogs.com/GJKACAC/p/4725997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!