HDU 2594 擴充套件KMP

2021-08-21 08:49:19 字數 429 閱讀 7978

題目鏈結

題意:給兩個字串s1,s2,求s1的字首和s2的字尾最長相等長度,並將相等部分輸出。

思路:擴充套件kmp解決的經典問題:定義母串s和子串t,求t與s的每乙個字尾的最長公共字首。

應用到此題將s1作為子串,s2作為母串進行擴充套件kmp求解,取最長的公共字首且在s2中為字尾的答案。

c++**:

#includeusing namespace std;

const int maxn = 50010;

int next[maxn],ex[maxn];

void getnext( char *s )

}if ( ans )

else

printf ( "%d\n" , ans );

}return 0;

}

hdu4333 擴充套件kmp

題意 給定乙個數字 10 100000,一次將該數的第一位放到放到最後一位,求所有組成的不同的數比原數小的個數,相等的個數,大的個數 分析 由於輸入的數太大了,只能當作字串處理,將輸入的原串貼上在後面,這樣就可以對原串進行ekmp,最終只要統計從第i個位置開始的extend i 如果 len則從第i...

hdu4763 擴充套件kmp

題意是在乙個字串中找出乙個字首乙個字尾和乙個中間的子串,互相不重疊並且三部分完全一樣 運用的是exkmp 對自身求乙個next陣列 next i 表示以i為開始位置的子串與整個串的字首最長匹配到多少長度 然後就是列舉了 注意到我們列舉後三分一的位置時,如果某個位置為i,且next i i len。也...

hdu 6153 擴充套件kmp

題意 給定兩個字元s1,length len1 s2 length len2 求s2 i len i 1,2,3,4,len 在s1中出現的次數乘上其長度 例如 s1 abababc,s2 abc,則應求abc,bc,c,在s1中出現的次 數。然而擴充套件kmp是求字首的,所以想到將s1,s2反轉一...