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

2021-08-08 20:40:11 字數 994 閱讀 1558

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

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

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

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

5

1 2 3 4 5

3 2 3 4

2 4

題意:

找出子串在目標串中的位置,如果在目標串中有多個子串輸出-1;

只有乙個時,才輸出所在的位置。

分析:

kmp演算法**是找到在目標串中有子串就返回其位置,不會繼續往下找,所以要想繼續往下找,就要自己寫嘍。

**

#include 

#include

using

namespace

std;

int n,m;

int a[100000005],b[100000005];

int book[100000005];

void get_next(int m,int b)

else

j = book[j];

}}void kmp(int a,int b)

}else

j = book[j];

}if(cnt == 1)

printf("%d %d",pos-m+1,pos);

else

printf("-1\n");

}int main()

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

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

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

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

sdut資料結構上機實驗之順序查詢

資料結構上機實驗之順序查詢 time limit 1000ms memory limit 65536k 在乙個的序列裡,查詢元素是否存在,若存在輸出yes,不存在輸出no.本題多組資料,首先輸入乙個數字n,然後輸入n n 1000 個數,然後再輸入乙個查詢數字。若存在輸出yes,不存在輸出no.4 ...