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並不是很容易確定的 但這些起始時間都是非負整數,因為它們必須在整個工程開始後啟動 例如 挖掘完成後,緊接著就要打地基...