擴充套件KMP模板

2022-09-17 23:51:18 字數 701 閱讀 1716

具體原理可以參考這裡:擴充套件kmp、擴充套件kmp演算法(劉毅)

**:

1 #include2 #include3 #include4 #include5

using

namespace

std;

6const

int n=1e6+5;7

8int

len1,len2;

9int nxt[n],extend[n]; //

nxt[i]表示t[0...len2-1]和t[i...len2-1]的最大公共字首長度

10//

extend[i]表示s[i...len1-1]和t[0...len2-1]的最大公共字首長度

1112

//獲得next[i](0<=i<=len(t)),跟ex_kmp()類似,相當於字串自身t匹配,t[i..len2-1]和t[0...len2-1]和等價於s和t

13void getnext(char *t)

26else

27 nxt[i]=nxt[i-a];28}

29}3031

//求得extend[i](0=32

void ex_kmp(char *s,char *t)

45else

46 extend[i]=nxt[i-a];47}

48 }

擴充套件kmp模板

擴充套件kmp詳解 擴充套件 kmp 演算法 輔助陣列next i 表示t i,m 1 和t的最長公共字首長度 設定兩個變數,a 和 p。p 代表以 a 為起始位置的字元匹配成功的最右邊界,也就是 p 最後乙個匹配成功位置 1 模板 p5410 模板 擴充套件 kmp 例題 hdu 4333 rev...

擴充套件KMP模板(學習)

乙個算是冷門的演算法 在競賽上 不過其演算法思想值得深究。kmp的演算法思想,具體可以參考這篇 trie樹 字典樹 擴充套件kmp的模板問題 給你兩個字串s,t,長度分別為n,m。請輸出s的每乙個字尾與t的最長公共字首。雜湊是不可能的,這輩子都不可能的。mathcalac自動機?好像更不可做了。我們...

ACM常用模板 擴充套件KMP

模板 擴充套件kmp,用extend i 儲存 主串 s i.n 1 與 模式串 t的最長公共字首的長度 using namespace std intne maxn extend maxn void ekmp chars,chart s為主串,t為模版串 j 0 while j len1 j le...