SDUT 資料結構實驗之串三 KMP應用

2021-08-22 08:18:16 字數 989 閱讀 4261

time limit: 1000 ms memory limit: 65536 kib

submit

statistic

discuss

problem description

有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r(l <= r),使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?

input

首先輸入乙個整數n,代表有n個小朋友。下一行輸入n個數,分別代表每個小朋友手裡糖的數量。

之後再輸入乙個整數m,代表下面有m個數。下一行輸入這m個數。

output

如果能唯一的確定一對l,r的值,那麼輸出這兩個值,否則輸出-1

sample input

5

1 2 3 4 5

32 3 4

sample output

2 4
hint

source

windream

我們先來理解一下題目「使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數」這句話的意思是說

這m個數要與上面的n個數有相同的字元竄,好,

#include #include int next[1000005];

int a[1000005];

int b[1000005];

void st(int b,int n)

else j=next[j];

}}int kmp(int a,int b,int n,int m)

else j=next[j];

}if(j==m)return i-m+1;//這裡的i代表相同字串的最後一位

else return -1;

}int main()

else printf("-1\n");

return 0;

}

sdut 3311 資料結構實驗之串三 KMP應用

time limit 1000ms memory limit 65536k 有疑問?點這裡 有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r l r 使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?首先輸入乙個整數...

SDUT 3311 資料結構實驗之串三 KMP應用

有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r l r 使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?首先輸入乙個整數n,代表有n個小朋友。下一行輸入n個數,分別代表每個小朋友手裡糖的數量。之後再輸入乙個整數m...

SDUT 3311 資料結構實驗之串三 KMP應用

time limit 1000ms memory limit 65536kb submit statistic discuss problem description 有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r l r...