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

2021-07-24 04:01:01 字數 1069 閱讀 7409

time limit: 1000ms

memory limit: 65536kb

submit

statistic

problem description

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

input

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

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

output

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

example input

5

1 2 3 4 5

32 3 4

example output

2 4

hint

#includeint s1[10000000];

int s2[10000000];

int next[10000000];

//在oj上陣列必須開到這麼大

void get_next(int s, int m)

else

k = next[k]; }}

int kmp(int s1, int s2, int n, int m)

else

j = next[j];

} if(j >= m) //找到位置

return i-m+1;

else

return-1;

}int main()

scanf("%d",&m);

for(int i = 0; i <= m-1; i++)

pos = kmp(s1, s2, n, m);

if(pos != -1) //比較是不是唯一出現的

else

printf("-1\n");

return 0;

}

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

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

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

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

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

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