牛客網 慄醬的數列 kmp

2021-09-12 13:22:11 字數 493 閱讀 6435

解題思路:

其實一開始我只想到了暴力的方法,複雜度mn.後來網上找了題解

發現竟然還可以用kmp做,因為題目要求(a'1+b1)%k = (a'2+b2)%k = …… = (a'm + bm)%k。那麼可以改造一下,變成

((a2-a1)+(b2-b1))%k==0,這樣就有可比性了。分成(a2-a1)項和(b2-b1)項,這種形式之和自己陣列內的數有關,可以建立next陣列。

#include#includeusing namespace std;

long long s1[200009],s2[200009],d1[200009],d2[200009],next[200009];

int n,m;

void build_next(long long d)

}int main()

} printf("%lld\n",ans);

} return 0;

}

牛客 慄醬的數列

慄醬有乙個長度為n的數列a,乙個長度為m的數列b,現在詢問a中有多少個長度為m的連續子串行a 滿足 a 1 b1 k a 2 b2 k a m bm k。第一行乙個數t,表示有t組資料。對於每組資料,第一行三個整數,n,m,k。第一行輸入n個數,a1,a2,an,表示a數列中的數,第二行輸入m個數,...

牛客網 14673 慄醬數數

題目描述 慄醬在酒桌上玩乙個小遊戲,第乙個人從1開始數數,如果遇到數字中含4或者數字是4的倍數則跳過報下乙個,誰數錯了就要罰酒一杯。所以慄醬想讓你寫個程式把所有數生成出來,這樣她就可以作弊直接讀了。你一定能解決的吧?輸入描述 只有一組資料,乙個數n代表從1開始數到n。n 100000 輸出描述 按順...

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

這道題就是一道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的原理進行了 想清楚後就是一...