首页 > HDU 1711 Number Sequence(KMP算法)

HDU 1711 Number Sequence(KMP算法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711

Number Sequence

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

Total Submission(s): 15548    Accepted Submission(s): 6836





Problem Description
Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K + 1] = b[2], ...... , a[K + M - 1] = b[M]. If there are more than one K exist, output the smallest one.



Input
The first line of input is a number T which indicate the number of cases. Each case contains three lines. The first line is two numbers N and M (1 <= M <= 10000, 1 <= N <= 1000000). The second line contains N integers which indicate a[1], a[2], ...... , a[N]. The third line contains M integers which indicate b[1], b[2], ...... , b[M]. All integers are in the range of [-1000000, 1000000].



Output
For each test case, you should output one line which only contain K described above. If no such K exists, output -1 instead.



Sample Input
2 13 5 1 2 1 2 3 1 2 3 1 3 2 1 2 1 2 3 1 3 13 5 1 2 1 2 3 1 2 3 1 3 2 1 2 1 2 3 2 1


Sample Output
6 -1



题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711

看了视频也看了博客,对KMP算法算是有了一知半解,先来一发水题吧。

对于next 数组 只需要求模式串,也就是两个串匹配中较小的那个。



【源代码】

#include 
#include 
using namespace std;
const int maxn =1000005;
const int maxb =10005;
int a[maxn],b[maxb];
int nextv[maxb];
void get_next(int b[],int m){ //求模式串的 next数组int i=0;//前缀nextv[0]=-1;int j=-1;//后缀while(i




转载于:https://www.cnblogs.com/chaiwenjun000/p/5321187.html

更多相关:

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • 为了不想让竞争对手看到我们使用的服务器的技术细节,我们可以将线上运行的ATS修改为我们自己设置的名字以及相应的版本号。在线修改如下选项 traffic_line -s proxy.config.http.response_server_str -v pcs/1.0.1 traffic_line -s proxy.config.htt...

  • 转载https://blog.csdn.net/qq_35883464/article/details/83151464 实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearcher3,nezha,25,1333...

  • oracle 10g: PL/SQL User's Guide and Reference ---> 10 Handling PL/SQL Errors ---> Summary of Predefined PL/SQL Exceptions 系统预定义异常(有名字的错误代码):TOO_MANY_ROWS : SELECT INTO...

  • [0. 需求] 最近在粗略学习《C++ Primer 4th》的容器内容,关联容器的章节末尾有个很不错的实例。通过实现一个简单的文本查询程序,希望能够对C++的容器学习有更深的理解。由于是浅略探讨研究,高手可无视,各位读者发现有什么不妥的地方,请指教。 程序将读取用户指定的任意文本文件,然后允许用户从该文件中查找单词。查询的结果是该单...