一些擴充套件kmp的總結

2021-08-03 21:14:54 字數 1126 閱讀 3500

花了一天多時間學了下ex_kmp。。。。

可以看劉雅瓊的

ppt,講的非常清楚:

我的寫法是:

next[i]: p[i..m-1] 與 p[0..m-1]的最長公共字首

ex[i]: t[i..n-1] 與 p[0..m-1]的最長公共字首

我的小模板:

[html]view plain

copy

/*  

擴充套件kmp  

next[i]: p[i..m-1] 與 p[0..m-1]的最長公共字首  

ex[i]: t[i..n-1] 與 p[0..m-1]的最長公共字首  

*/  

char t[maxn],p[maxn];    

int next[maxn],ex[maxn];    

void pre_exkmp(char p)    

}    

}    

void exkmp(char p,char t)    

}    

}    

一些題目:

hdoj 4333 revolving digits

要求不同的串,因為相等的串只會出現1次,出現第二次的時候就說明有迴圈了。。。

hdoj 4300 clairewd』s message

題意看不懂:

大概是給你乙個密碼表,乙個劫獲的串。那個劫獲的串的前一部分是密文後一部分是明文,但是不清楚分界線在**。讓你把這個串補完,並使長度盡量小。。。

把劫獲的串整個翻譯成密碼串作為文字串t,原來串p作為模板串做exkmp,從中間位置開始列舉,如果在位置i上的ex[ i ]等於i到結尾的距離,分界線就在這了。。。

hdoj 4763 theme section

一段**的旋律在開頭,結尾,中間出現,求最大旋律長。。。。exkmp找字首。。。挺簡單的

hdoj 3613 best reward

一條項鍊切成兩條,每種寶石有一定的權值。。當某一段是回文串的時候這條項鍊的值就是這條項鍊上所有寶石價值的和否則是0,問兩條項鍊最大價值是多少(權值可以為負值。。。有點小麻煩。。。。。)

本來想當exkmp寫的,一看是回文串果斷用manacher寫了。。。。 

一些擴充套件知識

apache nignx是靜態伺服器 http server nginx優點 負載均衡 反向 處理靜態檔案優勢。nginx處理靜態請求的速度高於apache apache優點 相對於tomcat伺服器來說處理靜態檔案是它的優勢,速度快。apache是靜態解析,適合靜態html 等。http serv...

KMP中的一些技巧( )

以下是我看的描述最小迴圈節能讓我看懂的一篇部落格 先簡單介紹一下kmp演算法利用 nxt 陣列求最小迴圈節的原理 假設圖中的黑色是原來的字串,現在要求最小迴圈節,對於nxt len 來說指的是圖中藍色和黃色的長度,而且藍色和黃色是相等的,那麼綠色和紫色也是相等的,對比原串可知紫色跟粉色是相同的子串,...

擴充套件KMP題目總結

問題定義 給定兩個字串s和t 長度分別為n和m 下標從0開始,定義extend i 等於s i s n 1 與t的最長相同字首的長度,求出所有的extend i 顯然,如果在s的某個位置i有extend i 等於m,則可知在s中找到了匹配串t,並且匹配的首位置是i。include include u...