Hdu 2087 kmp演算法的運用

2021-07-04 12:22:30 字數 1101 閱讀 3732

description

一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中盡可能剪出幾塊小飾條來呢?

input

輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ascii字元表示的,可見的ascii字元有多少個,布條的花紋也有多少種花樣。花紋條和小飾條不會超過1000個字元長。如果遇見#字元,則不再進行工作。

output

輸出能從花紋布中剪出的最多小飾條個數,如果一塊都沒有,那就老老實實輸出0,每個結果之間應換行。

sample input

abcde a3

aaaaaa aa

#sample output

0 3

kmp演算法的解釋:(

想法:運用kmp演算法來求原串中是否包含子串,由於求出了next陣列,所以可以降低複雜度,而next陣列的求解過程也包含了kmp演算法的思想。

#include 

#include

#include

#include

#include

#include

using

namespace

std;

char origin[1000010];

char opt[10010];

char next[10010];

int len1,len2;

void getnext()

else

j = next[j];

//移動next[j]個位置。

}}int kmp()

else

j = next[j];

if (j == len2)

}return ans;

}int main()

scanf("%s",opt);

len1 = strlen(origin);

len2 = strlen(opt);

getnext();

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

}return

0;}

剪花布條 HDU 2087(kmp演算法)

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

剪花布條 HDU 2087 KMP模板

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

剪花布條 hdu 2087(kmp模板題)

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