Oulipo - HDU 1686 (KMP模板题)
2015-08-14 15:04
267 查看
题目大意:题目叙述很多,其实只看输入输出也能明白什么意思,给两个串W,T, 判断T串中包含几个串W。
分析:还是基础的KMP应用.......................
直接上代码。
==================================================================================================================
分析:还是基础的KMP应用.......................
直接上代码。
==================================================================================================================
#include<stdio.h> #include<string.h> const int MAXM = 1e4+7; const int MAXN = 1e6+7; void GetNext(char s[], int next[], int N) { int i=0, j=-1; next[0] = -1; while(i < N) { if(j==-1 || s[i]==s[j]) next[++i] = ++j; else j = next[j]; } } int KMP(char W[], char T[], int Nw, int Nt) { static int next_w[MAXM]; int i=0, j=0, ans=0; GetNext(W, next_w, Nw); while(i < Nt) { while(j==-1 || (T[i] == W[j] && i<Nt) ) i++, j++; if(j == Nw) ans++; j = next_w[j]; } return ans; } int main() { int ncase; scanf("%d", &ncase); while(ncase--) { static char W[MAXM], T[MAXN]; int Nw, Nt; scanf("%s%s", W, T); Nw = strlen(W); Nt = strlen(T); int ans = KMP(W, T, Nw, Nt); printf("%d\n", ans); } return 0; }
相关文章推荐
- JQuery在一个简单的表单验证的例子
- php与html简单的json交互示例
- js实现表单检测及表单提示的方法
- 异步加载js(2)
- 关于Java的File.separator
- POJ 3422 Kaka's Matrix Travels(费用流)
- mysql 5分钟倒计时
- hdu 3460 Ancient Printer
- (链接)xcode7,ios9 部分兼容设置
- uploadify formdata参数传递
- 1项目设计
- 【vim】快捷键罗列
- Kernel build & debug
- 动态viewpager加载图片
- HashMap为什么线程不安全
- 编写高质量代码改善C#程序的157个建议——建议21:选择正确的集合
- MongoDB 索引
- 用jQuery实现具有伸缩功能的动画图片
- 异步加载js(1)
- 图数据库-Neo4j介绍与Cypher入门