題解0012 剪花布條(KMP)

2022-10-11 03:45:10 字數 799 閱讀 6399

信奧一本通1465kpm例題

題目描述:給出花布條和小飾條(字串),求花布條中能剪出幾塊小飾條。

先來乙個暴力**  (這題測試點是真氵,暴力竟然過了)

#includeusing

namespace

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 ],從而節省時間。

上**:

#includeusing

namespace

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字元有多少個,布條的花紋也有多少種花樣。...