hdu 1686(kmp)
2012-05-07 17:41
169 查看
/* * kmp */ #include <cstdio> #include <iostream> using namespace std; const int N = 10005; const int M = 1000005; int next ; char pat , str[M]; void indexNext() { int k = 0; next[1] = 0; for (int i=2; pat[i]; ++i) { while (k && pat[k+1]!=pat[i]) k = next[k]; if (pat[k+1] == pat[i]) ++k; next[i] = k; } } int kmp() { int k = 0, cs = 0; int lenPat = strlen(pat) - 1; for (int i=1; str[i]; ++i) { while (k && pat[k+1]!=str[i]) k = next[k]; if (pat[k+1] == str[i]) ++k; if (k == lenPat) ++cs, k = next[k]; } return cs; } int solve() { indexNext(); return kmp(); } int main() { int t; scanf ("%d", &t); str[0] = pat[0] = '#'; while (t--) { scanf ("%s%s", pat+1, str+1); printf ("%d\n", solve()); } return 0; }
相关文章推荐
- KMP——HDU 1686 Oulipo
- [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher B HDU 1686
- HDU - 1686 Oulipo (KMP)
- HDU-1686-KMP-水题
- hdu1686 Oulipo kmp
- hdu 1686 Oulipo (KMP模板)
- hdu 1686 kmp
- hdu 1686 Oulipo(KMP)
- hdu——1686Oulipo(kmp)
- hdu1686 Oulipo(KMP)
- HDU 1686 Oulipo(KMP)
- hdu 1686(标准的kmp,可当模板)
- HDU- KMP模板题 - 1686 Oulipo - 2087 剪花布条 - 3746 Cyclic Nacklace
- hdu 1686 Oulipo (kmp)
- KMP板子题 HDU - 1686
- KMP——HDU 1686 Oulipo
- HDU 1686 Oulipo(KMP)
- HDU 1686 Oulipo / POJ 3461 Oulipo / SCU 2652 Oulipo (字符串匹配,KMP)
- HDU 1686 Oulipo(KMP)
- HDU 1686 Oulipo (KMP查找可交叉区间模式串)