Think:
1知识点:kmp算法
2题意:先输入n,然后输入n个数字,再输入m,然后再输入m个数字,询问这m个数是否为n个数字的唯一子区间[l, r],若是,则存在子区间[l, r]则输出l, r,若不存在则输出-1
3反思:
(1):区间[l, r]必须是唯一存在
(2):当第一次寻找到一个区间[l, r]之后再次寻找判断是否是唯一存在时,要注意再次寻找时的出发位置
以下为Wrong Answer代码——未判断区间[l, r]是否是唯一的
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int max_size = 1004014;
int _next[max_size];
int rec1[max_size], rec2[max_size];
void get_next(int P[], int num_P);
void kmp(int T[], int num_T, int P[], int num_P);
int main(){
int n, m, i;
while(~scanf("%d", &n)){
for</