KMP模板及例題

2021-09-02 00:09:50 字數 971 閱讀 8748

kmp演算法就是字串匹配演算法,在乙個字串t中查詢字串p的位置。

#include.h>

using namespace std;

const int maxn=

1e6+

10;

int f[maxn]

;char t[maxn]

,p[maxn]

;void

getfail()

}void

find()

} int main()

find()

;// for(int i=0;i<=strlen(p);i++) printf("%d ",f[i]);

}

la3026 週期

給出乙個字串s,求出它的每個字首的最短迴圈節。換句話說就是對於每個i,求乙個最大的整數k>1,使得s的前i個字元組成的字首是某個字串重複k次得到。輸出所有存在k的i和對應的k.

比如樣例:aabaabaabaab 只有當i=2,6,9,12時存在k,且分別為2,2,3,4。

sample input

3aaa

12aabaabaabaab

0sample output

test case #1

2 23 3

test case #2

2 26 2

9 312 4

#include.h>

using namespace std;

const int maxn=

1e6+10;

int f[maxn]

;char p[maxn]

;int main()

for(int i=

2;i<=

strlen

(p);i++)}

}

KMP模板 例題

文章 假設主串 s s 1 s 2 s 3 s n 模式串 t t 1 t 2 t 3 t m 現在我們假設主串第i 個字元與模式串的第j j m 個字元 失配 後,主串第i 個字元與模式串的第k k主串 s 1 s i j 1 s i 1 s i 匹配 模式串 t 1 t j 1 t j 由此,可...

字典樹模板及例題

字典樹 time limit 1000ms memory limit 65536kb problem description 遇到單詞不認識怎麼辦?查字典啊,已知字典中有n個單詞,假設單詞都是由小寫字母組成。現有m個不認識的單詞,詢問這m個單詞是否出現在字典中。input 含有多組測試用例。第一行輸...

KMP詳細解釋及KMP演算法模板

kmp是什麼,kmp解決什麼型別的問題 kmp全稱為knuth morris pratt演算法,是一種高效的字串匹配演算法,尋找乙個字串中是否包含另乙個字串,例如 char s ababababcab char p ababc s為模板串 主串 p為子串,在s中找到p的位置 暴力匹配演算法 o n ...