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
5sample output1 2 3 4 5
32 3 4
2 4hint
#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個數,分別代表...