傳送門
題意:給你兩個字串問你其中乙個字串在另乙個字串中出現了幾次。
分析:這題顯然用kmp做,不然很容易超時,其實這基本算是乙個kmp模板題,如果不懂kmp是什麼的,可以參考這裡,我們先預處理模式串的next陣列,複雜度為o(m),然後根據這個next陣列讓模式串和文字串匹配一遍,掃一遍的複雜度是o(n),所以總的複雜度為o(m+n)。
#includeusing namespace std;
const int maxn = 1e5+5;
char t[maxn],p[maxn];
char s[maxn];
int next[maxn];
int lent,lenp;
/**預處理模式串的next陣列*/
void getnext()
else j = next[j];
}}int kmp()
else j = next[j];
if(j==lenp)
}return sum;
}int main()
return 0;
}
hdu 2087 剪花布條 kmp
為了紀念第一次用kmp解決一道題,在這寫下了,算是當做乙個模板吧。description 一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布...
hdu 2087 剪花布條 KMP
problem description 一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii...
HDU2087 剪花布條 KMP
一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii字元有多少個,布條的花紋也有多少種花樣。...