然後說說我刷題之路遇到的第二題吧:《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...