HDUOJ2087剪花布條(KMP)

2021-08-14 19:12:52 字數 590 閱讀 8167

題意:給乙個花布條和乙個小飾條,判斷從花布條裡可以剪出多少個小飾條,資料範圍1000

思路:直接暴力可能會超時,所以用kmp演算法,避免一些重複的迴圈,減少時間。從第乙個字元開始比較,碰到不同的就跳,如果一直到小飾條的最後乙個都相同那cnt+1,並且再把小飾條的第乙個繼續跟花布條的下乙個開始比較

**:

#include

#include

#include

using

namespace

std;

#define n 1005

char bt[n];

char st[n];

int ne[n];

int len1,len2;

void getnext(char* s)

}int main()

//相同就同時往後走一位

else j=ne[j];

if(j>=len2)

;//小飾條能對照完最後乙個的話計數器加一,j(就是代表小飾條的位置那個)歸零

}printf("%d\n",cnt);

}}return

0;}

hdu 2087 剪花布條

include include includeusing namespace std const int maxn 1004 char str maxn str1 maxn int main printf d n count return 0 此題主要是strstr 函式的應用!據說也可以用kmp來...

hdu 2087 剪花布條

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

HDU 2087剪花布條

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