Number Sequence
来源:互联网 发布:阿里淘宝小二电话 编辑:程序博客网 时间:2024/05/21 19:25
Number Sequence
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 21383 Accepted Submission(s): 9163
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
求连续字串的开始点位置
kmp模板套用
#include<cstdio>#include <iostream>#include<cstring>using namespace std;int a[1000010] , b[10010];int nextt[10010] , n , m ;void get_next( ){ memset(nextt , 0 , sizeof ( nextt )) ; int i = -1 , j = 0 ; nextt[0] = -1 ; while ( j < m ) { if ( i == -1 || b[i] == b[j] ) { i ++ , j ++ ; nextt[j] = i ; } else i = nextt[i] ; }}int kmp(){ int i = 0 , j = 0 ; while ( (i < n ) && (j < m) ) { if ( j == -1 || a[i] == b[j]) { j ++ , i ++ ; } else j = nextt[j] ; } if ( j == m) return i - m + 1 ; else return -1 ;}int main (){ int c; scanf ( "%d" , &c ) ; while ( c -- ) { memset(a , 0 , sizeof ( a ) ) ; memset(b , 0 , sizeof ( b ) ) ; scanf ( "%d%d" , &n , &m ) ; for ( int i = 0 ; i < n ; ++ i ) scanf ( "%d" , a + i ) ; for ( int i = 0 ; i < m ; ++ i ) scanf ( "%d" , b + i ) ; get_next () ; printf ( "%d\n" , kmp() ) ; } return 0 ;}
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- Number Sequence
- 协程终止可能原因
- 代码的坏味道(一)
- POJ 1279 Art Gallery .
- WordPress安装插件提示FTP及SSL证书错误
- forword和sendRedirect
- Number Sequence
- mysql中的unsigned
- cocos2d-x第二个示例ActionManagerTest注释
- 教你一步一步用 Node.js 制作慕课网视频爬虫
- 在码神学习Java的闲事谈
- javaScript笔记 (三) 数据类型转换 和 操作符、流程控制
- 用dnlib合并两个dll内的同名类
- Android Dev tool 最全的Android 开具
- SmartUpload组件使用过程中出现的问题