ACM練習之《自然的謎語》

2021-06-22 01:54:20 字數 1332 閱讀 1355

然後說說我刷題之路遇到的第二題吧:《pid328/自然地謎語》。

kmp學習文章一:

kmp學習文章二:

kmp學習文章三:

附上bf與kmp練習**:

#include #include using namespace std;

int kmpmatch(char *s,char *p);

int bfmatch(char *s, char *p);

void getnext(char *p,int *next);

int main()

; char s2[6] = ;

cout << bfmatch(s1 , s2) << endl;

cout << kmpmatch(s1 , s2) << endl;

return 0;

}//bf演算法

int bfmatch(char *s , char *p)

{ int i,j;

i=0;

while(i

5月14號,帶著稍稍能看懂那麼一點的kmp演算法,重寫了這一題,提交檢測成果……靠,伺服器壞了 - -。

2023年5月16日23:46:25更新:

nnd,伺服器終於好了,tm一看竟然wa30,大失所望。排查出錯誤後再提交,最後三個測試點超時 - -。再改。又錯。再改。又超時……

無奈了,問隊友曹大神,果然他也wa了幾次,哈哈。不過還是被他分分鐘ac了 - -。看他的**,感覺和我的差不多啊。。。鬱悶。改來改去無效。放下不管了。。。

晚上,決定刪了自己的**仿著曹大神的重寫,可是,竟然又有兩道超時

額額額,好吧,又漲姿勢了:scanf + printf  要比 cin + cout 執行快。

唉,不管怎麼說,今天終於算是把這道題解決了。看得出來我欠的知識實在太多,需要努力啊。

附上曹大神解此題的源**:(很多地方值得我去學習

#include#include#includeusing namespace std;

const int maxn = 100010,maxm = 100010;

char t[maxn],p[maxm];

int next[maxm],n,m,c;

int ans[maxn];

void makenext(int m)

{ int i=0,j=-1;

next[i] = -1;

while(i

acm練習 求最近的素數

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 第一行給出測試資料組數n 0 每行輸出兩...

2019 7 25 搜尋練習一 自然數的拆分

洛谷p2404 自然數的拆分 2019.7.25 題目描述 任何乙個大於1的自然數n,總可以拆分成若干個小於n的自然數之和。現在給你乙個自然數n,要求你求出n的拆分成一些數字的和。每個拆分後的序列中的數字從小到大排序。然後你需要輸出這些序列,其中字典序小的序列需要優先輸出。輸入格式 輸入 待拆分的自...

ACM 遞迴之奶牛的故事

題目描述 有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0輸出 對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。樣例輸入24 5...