題意:給乙個花布條和乙個小飾條,判斷從花布條裡可以剪出多少個小飾條,資料範圍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字元有多少個,布條的花紋也有多少種花樣。...