kmp中next数组的运用
来源:互联网 发布:excel怎么汇总数据 编辑:程序博客网 时间:2024/06/07 05:50
#include <iostream>#include<stdio.h>#include<string.h>#include<string>using namespace std;char a[ 200005];int next[ 200005];int dp[ 200005];const int mod=10007;void build(int s){ int i; next[1]=0; int j=0; for(i=2;i<=s;i++) { while(j>0&&a[j+1]!=a[i]) j=next[j]; if(a[j+1]==a[i]) j++; next[i]=j; }}/*void output(int x){ if(next[x]==0) { printf("%d ",x); return ; } output(next[x]); printf("%d ",x);}*/int main(){ int cas; scanf("%d",&cas); while(cas--) { int s; scanf("%d",&s); scanf("%s",&a[1]); memset(next,0,sizeof(next)); build(s); dp[0]=0; int sum=0; for(int i=1;i<=s;i++) { dp[i]=dp[next[i]]+1; sum+=dp[i]; sum%=mod; } printf("%d\n",sum); } return 0;}
0 0
- kmp中next数组的运用
- Cyclic Nacklace (kmp中next数组的运用)
- Period(kmp中next数组的运用)
- The Minimum Length (kmp中next数组的运用)
- Power Strings (kmp中next数组的运用)
- KMP的next数组性质运用
- HDU 3746(KMP)next数组的运用
- POJ 2406 Power Strings KMP中next数组简单运用
- hdu 3746 Cyclic Nacklace(KMP中next数组的运用)
- 1358 Period hdu kmp的next数组运用
- hdu 4513 KMP里next数组的运用
- POJ2406 Power Strings(KMP next数组的运用)
- poj 2752 KMP(next数组的运用)
- Count the string (kmp的next数组运用)
- HDU 1358 Period(KMP+next数组的运用)
- KMP中next数组的理解
- KMP中next数组的理解
- POJ2752 KMP中next数组的应用
- 控制actionbar中的向上键
- Balanced Binary Tree
- 查询本机的某个端口被什么程序或者进程占用
- 磁盘I/O性能影响
- 浅谈企业应用软件架构设计过程
- kmp中next数组的运用
- HDOJ 2046 骨牌铺方格
- JavaScript Promises
- ffmpeg代码笔记4:获取MP4文件的码率
- DialogFragment详解
- HDU2028 Lowest Common Multiple Plus
- JavaScript Tween算法及缓动效果
- java中WeakHashMap的个人理解
- 编程珠玑里的日期函数