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

2021-08-22 19:45:37 字數 932 閱讀 8403

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

#include

#include

#include

int m, n, next[1000001], t[1000001], p[1000001];  //一開始陣列開小了乙個0,結果wa

void setnext()  //建立next陣列

else}}

void kmp()  //kmp演算法

else

if(j == m)

l = i - m + 1;

r = i;}}

if(flag == 1)

else

}int main(void)

scanf("%d", &m);

for(i = 0; i < m; i++)

setnext();

kmp();

return 0;

}

資料結構和演算法 Day 2

演算法的五個基本特徵 輸入 輸出 有窮性 確定性 可行性。1 輸入 演算法具有零個或多個輸入。2 輸出 演算法至少有乙個或多個輸出。3 有窮性 指演算法在執行有限的步驟之後,自動結束而不會出現無限迴圈。4 確定性 演算法的每乙個步驟都具有確定的含義,不會出現二義性。5 可行性 演算法的每一步都必須是...

資料結構知識複習 day2

之前的博文中介紹了如何使用動態陣列來實現乙個簡單的佇列,而本文中簡要介紹一下如何使用標準c來實現乙個在記憶體中物理位置不連續的鍊錶。以下分別是link.h以及link.c檔案原始碼 ifndef linked h struct node typedef struct node position ty...

資料結構實驗之串三

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