hdu 1711 Number Sequence(KMP模板题)
2013-07-26 12:24
288 查看
我的第一道KMP。
把两个数列分别当成KMP算法中的模式串和目标串,这道题就变成了一个KMP算法模板题。
把两个数列分别当成KMP算法中的模式串和目标串,这道题就变成了一个KMP算法模板题。
#include<stdio.h> #include<string.h> #define N 1000005 #define M 10005 int a ,b[M]; int next[M]; int n,m; void setNext() { int i,j; i=0; j=-1; next[i]=j; while(i<m) { if(j==-1||b[i]==b[j]) { i++; j++; next[i]=j; } else j=next[j]; } return ; } int KMP() { int i,j; i=j=0; setNext(); while(i<n) { if(j==-1||a[i]==b[j]) { i++; j++; if(j==m) return i-m+1; } else j=next[j]; } return -1; } int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); int i; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<m;i++) scanf("%d",&b[i]); int temp; temp=KMP(); printf("%d\n",temp); } return 0; }
相关文章推荐
- HDU 1711 Number Sequence (KMP模板题)
- HDU 1711 Number Sequence【KMP】【模板题】【水题】(返回匹配到的第一个字母的位置)
- HDU1711 ——Number Sequence(KMP模板题)
- HDU 1711 Number Sequence(KMP模板)
- hdu 1711 Number Sequence(KMP入门模板题)
- hdu 1711 Number Sequence(kmp模板题)
- KMP算法的定义及KMP练手题 HDU 1711 Number Sequence (我的模板代码)
- HDU 1711 Number Sequence (KMP找子串第一次出现的位置)(基础模板题)
- 【HDU 1711】Number Sequence 【KMP 模板】
- HDU - 1711 Number Sequence(kmp 模板)
- HDU1711 Number Sequence (KMP 模板)
- HDU - 1711 Number Sequence (kmp模板题)
- HDU 1711 Number Sequence(KMP模板)
- HDU - 1711 Number Sequence(KMP入门模板题)
- HDU 1711 Number Sequence(KMP:找模板第一次出现的位置)
- HDU 1711 Number Sequence(KMP模板)
- Number Sequence - HDU 1711(KMP模板题)
- HDU 1711 Number Sequence(KMP模板)
- HDU - 1711 Number Sequence (KMP模板)
- Kmp 模板 之 hdu 1711 Number Sequence