http://acm.hdu.edu.cn/showproblem.php?pid=3336

来源:互联网 发布:人工智能利大于弊 编辑:程序博客网 时间:2024/05/01 06:11

题目大意:

所有前缀在母串中出现的次数之和。

#include<stdio.h>#define N  200009int next[N];int get_next(int len ,char *p){      int i=0,j=-1,sum=0;      next[i]=j;      while(i<len){         if(j==-1||p[i]==p[j]){            i++;            j++;            next[i]=j;         }else{            j=next[j];         }      }      for(i=1;i<=len;i++)        if(next[i]>0)           ++sum;      return sum+len;}int main(){    int t,n;    char buff[N];    scanf("%d",&t);    getchar();    while(t--){        scanf("%d",&n);        getchar();        gets(buff);        printf("%d\n",get_next(n,buff)%10007);    }}


0 0
原创粉丝点击