模板
模板题:hdu1711 Number Sequence
hdu1686 Oulipo
//字符串下标从1开始,n表示文本串的长度,m表示模式串的长度
int n,m,fail[10010];
char s[1000010],p[10010];
void get_fail(){
for(int i=2,j=0;i<=m;i++){
while(j && p[i]!=p[j+1]) j=fail[j];
if(p[i]==p[j+1]) j++;
fail[i]=j;
}
}
void match(){
for(int i=1,j=0;i<=n;i++){
while(j && s[i]!=p[j+1]) j=fail[j];
if(s[i]==p[j+1]) j++;
if(j==m){
j=fail[j];
//匹配成功之后的操作
}
}
}