摘要:POJ2406#include#include#includeusing namespace std;const int maxn=1000010;char b[maxn];int next[maxn];void prekmp(){ int j=-1;next[0]=-1; for(int i=1;b[i];++i) { while(j!=-1&&b[i]!=b[j+1]) j=next[j]; if(b[i]==b[j+1]) j++; next[i]=j; }}int main(){ while(scanf("%s",...
阅读全文
摘要:POJ1961#include#include#includeusing namespace std;const int maxn=1000010;char b[maxn];int next[maxn];void prekmp(){ int j=-1;next[0]=-1; for(int i=1;b[i];++i) { while(j!=-1&&b[i]!=b[j+1]) j=next[j]; if(b[i]==b[j+1]) j++; next[i]=j; }}int main(){ int n; while(s...
阅读全文
摘要:#include#include#includeusing namespace std;const int maxn=400010;char b[maxn];int next[maxn],a[maxn];void prekmp(){ int j=-1;next[0]=-1; for(int i=1;b[i];++i) { while(j!=-1&&b[i]!=b[j+1]) j=next[j]; if(b[i]==b[j+1]) j++; next[i]=j; }}int main(){ while(scanf("%s",...
阅读全文
摘要:http://poj.org/problem?id=3461//LIMIT:1000ms 65536kMemory:1208KTime:110MS#include#includeusing namespace std;const int maxn=10010;const int maxm=1000010;char a[maxm],b[maxn];//a为源串,b为待匹配串;int next[maxm];void prekmp(){ int j=-1;next[0]=-1; for(int i=1;b[i];++i) { while(j!=-1&&b[i]!=b...
阅读全文