信奧一本通1465kpm例題
題目描述:給出花布條和小飾條(字串),求花布條中能剪出幾塊小飾條。
先來乙個暴力** (這題測試點是真氵,暴力竟然過了)
#includeusingnamespace
std;
int next[1001],i=0,j=0,we=0
;string
a,b;
intmain()
else
else
if(j==bs)
}cout}}
}
暴力自然不用多說,挨個比就行。匹配成功就接著往下匹配,失敗就回去重新匹配。
但是,這種暴力法時間複雜度可高,遇到資料大的情況得全tle。
那怎麼辦呢?
這就要介紹一種nb的演算法——kmp演算法。
這種演算法是當子串與母串匹配不一樣時,母串不動,計算出下一步子串移動的位置next [ j ],從而節省時間。
上**:
#includeusingnamespace
std;
int nextl[1001]=;//
這個陣列名不能直接用next,容易報錯
string
a,b;
intkmp()
}else
}return
we;}
void next()else
}}int main()
else
}}
剪花布條 KMP
剪花布條 hdu 2087 一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii字元有多少個...
剪花布條 (KMP)
一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii字元有多少個,布條的花紋也有多少種花樣。...
剪花布條 (KMP)
一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?input 輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii字元有多少個,布條的花紋也有多少種花樣。...