http://acm.hdu.edu.cn/showproblem.php?pid=1711

首次接触KMP,自己都不是特别理解。在网上百度看了好几个帖子之后,对KMP也有了初步的理解。

#include <stdio.h>

int a[], b[], next[];

void getnext( int n)
{
int i=, j=-;
next[]=-; while(i<n)
{
if(j==- || b[i]==b[j])
next[++i]=++j;
else
j=next[j];
}
} int KMP(int m, int n)
{
int i=, j=; while(i<m)
{
while((j==- || a[i]==b[j]) && j<n)
i++, j++; if(j==n) return i-n+;
j=next[j];
}
return -;
}
int main()
{
int T; scanf("%d", &T); while(T --)
{
int m, n; scanf("%d %d", &m, &n); for(int i=; i<m; i++)
scanf("%d", &a[i]); for(int i=; i<n; i++)
scanf("%d", &b[i]); getnext( n); printf("%d\n", KMP(m, n));
}
return ;
}

Number Sequence HDU 1711(KMP)的更多相关文章

  1. Number Sequence - HDU 1711(KMP模板题)

    题意:给你一个a串和一个b串,问b串是否是a串的子串,如果是返回b在a中最早出现的位置,否则输出-1   分析:应该是最简单的模板题了吧..... 代码如下: ==================== ...

  2. HDU 1711(KMP)字符串匹配

    链接  HDU 1711 Number Sequence KMP 算法 我以自己理解写的,写的不对,不明白的地方海王子出来,一起共同学习: 字符串匹配 就是KMP,一般思想,用一个for循环找开头   ...

  3. (KMP 模板)Number Sequence -- Hdu -- 1711

    http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (Java/Other ...

  4. AC日记——Number Sequence hdu 1711

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. [AX]AX2012 Number sequence framework :(三)再谈Number sequence

    AX2012的number sequence framework中引入了两个Scope和segment两个概念,它们的具体作用从下面序列的例子说起. 法国/中国的法律要求财务凭证的Journal nu ...

  6. Number Sequence HDU 1711 KMP 模板

    题目大意:两个数组匹配,求子串首次出现的位置. 题目思路:数组长度,比较大,朴素算法的时间复杂度为 m*n超时.KMP的时间复杂度为m+n可行. #include<iostream> #i ...

  7. [JZOJ 5437] [NOIP2017提高A组集训10.31] Sequence 解题报告 (KMP)

    题目链接: http://172.16.0.132/senior/#main/show/5437 题目: 题解: 发现满足上述性质并且仅当A序列的子序列的差分序列与B序列的差分序列相同 于是我们把A变 ...

  8. Theme Section - HDU 4763(KMP)

    题目大意:给你一个串,从这个串里面找出一个前缀后缀中间相等的串的最大长度也就是 EAEBE,每个字母都代表一个串,E出现了三次,找出最长的那个E.   分析:我们知道KMP里面保存的就是前缀和后缀的最 ...

  9. HDU 1711 Number Sequence (字符串匹配,KMP算法)

    HDU 1711 Number Sequence (字符串匹配,KMP算法) Description Given two sequences of numbers : a1, a2, ...... , ...

随机推荐

  1. AX7: Quick and easy debugging

    This purpose of this blog is to show how you can get quickly get started with debuggingin AX7, speci ...

  2. jira的使用

    http://www.cnblogs.com/yangxia-test/p/4448002.html linux下的安装: http://blog.csdn.net/crave_shy/article ...

  3. C# 利用反射给不同类型对象同名属性赋值

    public class ObjectReflection { public static PropertyInfo[] GetPropertyInfos(Type type) { return ty ...

  4. Markdown写博客

    一级目录 我接下来是不是该写二级目录了 二级目录 如果我用桌面端的Markdown会不会好很多,这个我看不到效果 听说插入表格很麻烦? 列表是这样的? 我还看不出样子 *这个是什么样子啊 引用是这样用 ...

  5. 2、C#面向对象:封装、继承、多态、String、集合、文件(上)

    面向对象封装 一.面向对象概念 面向过程:面向的是完成一件事情的过程,强调的是完成这件事情的动作. 面向对象:找个对象帮你完成这件事情. 二.面向对象封装 把方法进行封装,隐藏实现细节,外部直接调用. ...

  6. jsp调试小技巧

    console.log($("#toolbar")); 打印对象可知道这个对象的参数信息

  7. PAMI 2010 Context-aware saliency detection

    This is a highly-cited paper. The context aware saliency proposed based on four principles, which ca ...

  8. 修改eclipse运行内存的大小

    一.    尝试修改Eclipse.ini 文件 (此方法不行) 找到eclipse 目录下的eclipse.ini 文件,修改下面的内容: -Xms40m -Xmx512m 修改后重启eclipse ...

  9. 带名称空间的xml数据查询

    <gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.5" versio ...

  10. 第三周作业--Word Counter

    需求分析: 1.写出一个程序,模仿wc.exe,通过输入文件名,实现文件内容读取: 2.统计出文件内容的总字符数.总单词数.行数.每行字符数.每行单词数. 代码分析: 一.打开文件. FILE *fp ...