BSOJ 4685 DOG進遊戲 回顧 KMP

2021-07-11 23:04:52 字數 1452 閱讀 8403

4685 -- 【模擬試題】dog進遊戲

description

給定 個字串,並給定乙個長度為 的匹配串,請你判斷在 個字串中是否有乙個字串與給定的匹配串匹配(即在字串中存在一段字元與匹配串完全相同)。

如果有能夠匹配的字串,則輸出」my god.「如果不能匹配,則輸出」my cs.「,然後輸出最多能匹配的長度 (即匹配串最多的前x 位,從匹配串第一位開始到第x位)。

input

第一行首先是乙個正整數 ,表示字串的個數。然後是乙個字串sp ,表示匹配串。

第二行到第n+1 行,每行有乙個字串si ,表示乙個待匹配的字串。

output

如果能夠完全匹配,則輸出」my god.「(輸出時不含引號)。

如果不能完全匹配,則第一行輸出」my cs.「(輸出時不含引號),

然後在第二行輸出最多能匹配的長度 。

sample input

3 aadd

aaddc

aadqc

aabb

sample output

my god.

hint

樣例2:

輸入:5 aaaddc

aaad

aaddc

adccfbgd

aqqq

輸出:my cs.4

字串匹配,自然是kmp了,然而考的時候一臉懵逼,完全記不到了啊!

kmp這個用於介紹kmp演算法,詳細**是自己寫的。 /*

另:例題1:         seek the name,seek the fame

solution(侵刪)

例題2:      power string

solution:見record

例題3:      oulipo

solution:見record.注意匹配成功的時候j無需歸0,因為可以繼續匹配,如aaaaaa;aa */

#include#include#include#include#includeusing namespace std;

int next[150]=,n,lens,lent,mx=0;

string s,t;

//next[i]--以i結尾的字串字首和字尾相同元素最大長度。

void getnxt(string t)//最好在紙上推一推

}bool kmp(string s,string t)//s--模式串;t--主串。kmp得到第一次匹配的位置:i-lens+1

return 0;

}int main()

} puts("my cs.");

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

return 0;}/*

5 aaaddc

aaad

aaddc

adccfbgd

aqqq

*/

BSOJ 3800 染色 貪心

3800 四校聯考1 染色 description 人人生而平等,然而後來人們逐漸選擇了不同的道路,人與人之間,變得不再平等。你可能會因為染上惡人之色而墮落,成為社會的敗類 你也可能因為染上善人之色,而在逆境中不斷成長。但是,紅與黑並非絕對的。所謂 近朱者赤,近墨者黑 你能改變周遭的環境,那麼周遭的...

BSOJ 4852 比賽 暴力優化

4852 模擬試題 比賽 description 有兩個隊伍a和b,每個隊伍都有n個人。這兩支隊伍之間進行n場1對1比賽,每一場都是由a中的乙個選手與b中的乙個選手對抗。同乙個人不會參加多場比賽,每個人的對手都是隨機而等概率的。例如a隊有a1和a2兩個人,b隊有b1和b2兩個人,那麼 a1 vs b...

bsoj1252 工程規劃

造一棟大樓是一項艱鉅的工程,它是有n個子任務構成的,給它們分別編號1,2,3,n 5 n 1000 由於對一些任務的起始條件有著嚴格地限制,所以每個任務的起始時間t1,t2,t3 tn並不是很容易確定的 但這些起始時間都是非負整數,因為它們必須在整個工程開始後啟動 例如 挖掘完成後,緊接著就要打地基...