kmp算法总结
2011-03-31 19:05
232 查看
正如matrix67大神说的,kmp算法没有讲的必要。而我觉得kmp是一种工具,只要知道会用就可以,比如poj 3461,要想好好理解,可以看matrix67的文章。kmp的预处理函数还是有一些用处的,poj1961 2406 2752都用到了。
贴一下kmp算法的模板:
贴一下kmp算法的模板:
void preprocess(int m) { p[1]=0; int j=0,i; for(i=2;i<=m;i++) { while(j>0&&b[j+1]!=b[i]) j=p[j]; if(b[j+1]==b[i]) j++; p[i]=j; } return ; } int kmp(int n,int m) { int j=0,i,k=0; for(i=1;i<=n;i++) { while(b[j+1]!=a[i]&&j>0) j=p[j]; if(b[j+1]==a[i]) j++; if(j==m) { k++; j=p[j]; } } return k; }