演算法運用 KMP實戰演練

2021-06-05 16:22:07 字數 666 閱讀 3901

看完花名,滾來寫總結了。( >﹏<。)~嗚嗚....

題目:hdu1358

大意:求字串子串最大分割自我迴圈次數。(表達的不好)

解題:  第一念頭想著用kmp兩層迴圈切割字串,第一層處理原串,第二層處理模式串。

然後費了好大的勁寫了出來,結果,結果超時了 (┬_┬),(喂,這是理所應當的吧)。

沒辦法只好搜答案,發現只要運用next陣列就可以解決了 (* ̄▽ ̄)y !

同時發現了自己的乙個誤區,原本以為next陣列的值小於等於 slen/2,但實際上只要小於 slen就可以了。

同時可以發現,當next[slen]>slen/2,字首與字尾有重疊的部分,通過觀察可以發現答案與其的關係,至於原理目前未想通,(´д`)

**:

原來單單用next陣列就可以算出字串的自我迴圈次數了。 (* ̄︶ ̄)y 以上

#include using namespace std;

char s[1000000];

int nextp[1000000];

void getnextp(char p, int nextp)

{ int i = 0, j = -1, l = strlen(p);

nextp[0] = -1;

while(i

Hdu 2087 kmp演算法的運用

description 一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii字元有多少個,布...

經典演算法題每日演練 第七題 KMP演算法

在大學的時候,應該在資料結構裡面都看過kmp演算法吧,不知道有多少老師對該演算法是一筆帶過的,至少我們以前是的,確實kmp演算法還是有點饒人的,如果說紅黑樹是 級的,那麼kmp演算法比紅黑樹還要 很抱歉,每次打kmp的時候,輸 入法總是提示 看毛片 三個字,嘿嘿,就叫 看毛片演算法 吧。一 bf演算...

經典演算法題每日演練 第七題 KMP演算法

在大學的時候,應該在資料結構裡面都看過kmp演算法吧,不知道有多少老師對該演算法是一筆帶過的,至少我們以前是的,確實kmp演算法還是有點饒人的,如果說紅黑樹是 級的,那麼kmp演算法比紅黑樹還要 很抱歉,每次打kmp的時候,輸 入法總是提示 看毛片 三個字,嘿嘿,就叫 看毛片演算法 吧。一 bf演算...