牛客字串KMP訓練題 慄醬的數列

2021-09-25 19:58:11 字數 687 閱讀 6890

這道題就是一道kmp模板題,但是有幾個小地方要處理下:

首先我們來看看題面 傳送門

也就是說滿足(a2+b2-a1-b1)%k==0

化簡之後就是((a2-a1)%k+(b2-b1)%k)%k==0

((a[i]-a[i-1])%k+b[i]-b[i-1])%k)%k==0

得到這個結論以後就可以用kmp的原理進行了(想清楚後就是一道模板題)

上**:

#include

const

int maxn=

2e5+7;

using namespace std;

int t,n,m,k,ans;

int a[maxn]

,b[maxn]

,nxt[maxn]

,da[maxn]

,db[maxn]

;void

getnxt()

}void

kmp()}

intmain()

for(

int i=

0;i)kmp()

;printf

("%d\n"

,ans);}

return0;

}

牛客網 慄醬的數列 kmp

解題思路 其實一開始我只想到了暴力的方法,複雜度mn.後來網上找了題解 發現竟然還可以用kmp做,因為題目要求 a 1 b1 k a 2 b2 k a m bm k。那麼可以改造一下,變成 a2 a1 b2 b1 k 0,這樣就有可比性了。分成 a2 a1 項和 b2 b1 項,這種形式之和自己陣列...

牛客字串KMP訓練題 可愛即正義

一開始的時候怎麼也想不明白,根本就不知道時間複雜度怎麼優化,後來在左神左學長的指點下,發現了字串的模式串是給定的,並且其無法在其本身上找到一段與其本身匹配的地方,也就是說,沒有辦法在母串上找到多個相互交錯的模式串 接下來就簡單了,分別討論母串上找到的模式串有times個的情況 當times 2時,無...

牛客 假的字串

description 給定n個字串,互不相等,你可以任意指定字元之間的大小關係 即重定義字典序 求有多少個串可能成為字典序最小的串,並輸出它們 input 第一行乙個數表示n 之後n行每行乙個字串表示給定的字串 output 第一行輸出乙個數x表示可行的字串個數 之後輸出x行,每行輸出乙個可行的字...