hdu 1711 Number Sequence
2013-09-12 14:15
369 查看
hdu 1711 Number Sequence
kmp基础题.
#include <stdio.h> #define MAX 10005 int n, m; int a[MAX*100], b[MAX]; int next[MAX]; void getNext(int* arr, int* next) { int j, k; j = 0; k = -1; next[0] = k; while (j < m - 1) { if (k == -1 || arr[k] == arr[j]) { ++k, ++j; if (arr[k] == arr[j]) { next[j] = next[k]; } else { next[j] = k; } } else { k = next[k]; } } } int kmp(int* a, int* b) { int i, j; i = j = 0; getNext(b, next); while (i < n) { if (j == -1 || a[i] == b[j]) { ++j, ++i; } else { j = next[j]; } if (j == m) { return i - m + 1; } } return -1; } int main() { int T; int i; while (scanf("%d", &T) != EOF) { while (T--) { scanf("%d%d", &n, &m); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (i = 0; i < m; i++) { scanf("%d", &b[i]); } printf("%d\n", kmp(a, b)); } } return 0; }
相关文章推荐
- hdu 1711 Number Sequence(kmp)
- (HDU - 1711)Number Sequence
- HDU 1711 Number Sequence 【KMP】
- [HDU 1711]Number Sequence[kmp]
- (HDU)1711 - Number Sequence【KMP】
- HDU - 1711 - Number Sequence,1686 - Oulipo,2087 - 剪花布条,3746 - Cyclic Nacklace (KMP基础)
- HDU 1711 — Number Sequence简单题
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- |Hdu 1711|KMP|Number Sequence
- HDU 1711 Number Sequence(kmp)
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence (KMP找子串第一次出现的位置)
- 【KMP】hdu 1711 Number Sequence
- KMP - HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- Hdu 1711 - Number Sequence
- hdu 1711 Number Sequence
- hdu 1711 Number Sequence(kmp)
- 【KMP模板】HDU 1711 Number Sequence