2017西安交大ACM小學期 神器插座 KMP匹配

2021-08-03 15:44:30 字數 878 閱讀 6275

描述aa所在的國家有一項神奇的發明:插座。這裡的插座不僅有兩孔、三孔,而是有多種形態,下面用不同的小寫字母表示不同的插座。插線板可以看做一排插座,因而下面用小寫字母組成的字串表示插線板。

該國家的用電器的插頭也很特別,是由一串插頭固定在一起的,下面用大寫字母組成的字串表示。只有插座和插頭匹配,該用電器才能插在插線板上。例如:

插頭abcba可以插在插線板abcbabcba上。

現在問題來了:給定插線板和插頭,問該插線板上最多能插幾個這樣的插頭?注意,這些插頭不能重疊。

輸入多組測試資料。

每組測試資料報含兩行,第一行為插座,第二行為插頭。

插座、插頭對應的字元均不超過106

。總資料量不超過107

個字元。

輸出對每組資料,輸出一行乙個整數,表示答案。

樣例輸入1

複製

abcbabcba

abcba

樣例輸出1

1

解法非常簡單,直接進行kmp匹配就可以了,但是kmp的模板要有乙個小小的改動(因為這裡題目要求插頭不能重疊),那就是只要匹配到乙個插頭以後,直接置j = 0

這樣可以避過重疊

**:

#include #include using namespace std; 

#define maxn 2000001

char s[maxn];

char str[maxn];

int fail[maxn];

int search(char *str)

} return ans;

}void make_fail()

}int main()

return 0;

}

2013西安交大ACM校內賽C題

description zz和gg有很多大事要決定。在他們實在說服不了對方的時候,他們決定猜拳決定勝負。由於石頭剪刀布在設計之初存在巨大的缺陷,有極大的可能出現平手!事實上,某一天,zz和gg猜拳猜了乙個下午 在中科院的領導的幫助下,zz和gg開始使用 二維向量夾角大作戰 來決定勝負。二維向量夾角大...

2017西安邀請賽總結

我記得前幾天就傳上來了的呀。邀請賽總結 前幾天玩的太浪了,還包了一次宿。休息就跟不上了,正式賽時候腦子一直濛濛的。而且之前想前一天去安排下戰術,然而熱身發揮的比較穩,再加上酒店問題比較大,換房間什麼的浪費很長時間就沒有去安排戰術,正式賽只做的4題,銅牌第6.發揮的很差,全場題總是不出。其實a題正解我...

創業者周鴻禕前傳(西安交大時期)

以下這篇博文來自西安交大兵馬俑bbs 6月13日 作者自稱是周鴻禕的同級同學 kevin 裡面頗有不少八卦題材,值得一讀。這是創業者周鴻禕的部分前傳啊 以下為原文,有刪節 周鴻禕和我一級,88的。是參與過88 1那個瘋狂年代散步的年齡最小的一批.從此,我們這一級的,大多都有些特立獨行的味道。88 1...