HDU 1711 KMP 模板
2017-03-28 21:19
417 查看
KMP 入门题, 单模式串匹配
#include <iostream> #include <cstring> using namespace std; const int N = 1000010; const int M = 10010; #define next Next int s , t[M], next[M]; int n, m; void getNext(){ next[0] = -1, next[1] = 0; int i = 1, j = 0; while(i < m){ if(j == -1 || t[i] == t[j]) next[++i] = ++j; else j = next[j]; } } int kmp(){ getNext(); int i = 0, j = 0; while(i < n){ if(j == -1 || s[i] == t[j]){ ++i; ++j; }else j = next[j]; if(j == m) return i + 1 - m; } return -1; } int main(){ int T; cin >> T; while(T--){ cin >> n >> m; for(int i = 0; i < n; ++i) cin >> s[i]; for(int i = 0; i < m; ++i) cin >> t[i]; cout << kmp() << endl; } return 0; }
相关文章推荐
- hdu 1358 & 1711 kmp 模板
- 【KMP模板】HDU 1711 Number Sequence
- hdu 1711 Number Sequence(KMP入门模板题)
- HDU1711 KMP(模板题)
- KMP 模板 HDU 1711
- hdu 1711 Number Sequence(kmp模板题)
- HDU-1711-kmp模板
- KMP算法模板及问题解决(HDU 1711)(hihocoder 1015 KMP)(HDU 1686)(POJ3461)(HDU1358)
- HDU 1711 Number Sequence【KMP模板】
- HDU 1711 Number Sequence(KMP:找模板第一次出现的位置)
- HDU 1711 KMP模板
- Kmp 模板 之 hdu 1711 Number Sequence
- Number Sequence - HDU 1711(KMP模板题)
- hdu 1711 Number Sequence(KMP模板题)
- KMP算法的定义及KMP练手题 HDU 1711 Number Sequence (我的模板代码)
- HDU--1711(KMP模板题)
- [KMP模板题]HDU-1711 Number Sequence
- HDU 1711 裸KMP,附KMP模板
- HDU 1711 Number Sequence(KMP模板)
- HDU 1711 Number Sequence(KMP模板)