牛客每日練習 慄醬的數列,模擬戰役,素數回文

2021-10-05 13:26:37 字數 1088 閱讀 3305

慄醬有乙個長度為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個數, b1,b2,…,bm, 表示b數列中的數。

每一組資料輸出一行,滿足條件的連續子串行數量。
示例1

複製

2

3 2 5

7 8 7

8 73 2 5

7 8 9

8 7

複製

1

2

t≤15,

2≤m≤n≤2×105,

1≤ai,bi,k≤109

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x7ffffff

#define p pairtypedef long long ll;

using namespace std;

const ll mod=1e9+7;

int t,n,m;

ll a[200010],b[200010],k;

void getnext(int nx)

}}void dfsq(int x,int y)

}}int main()}}

for(int i=1;i<=4;i++)}}

if(nump>numq)

printf("-1\n");

else

return num;

}bool is_prime(ll n)

int main()

牛客 慄醬的數列

慄醬有乙個長度為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個數,...

牛客網 慄醬的數列 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 項,這種形式之和自己陣列...

牛客 慄醬的不等式

題解 本題還是沿用二分一貫的風格,二分答案。那麼二分的條件是什麼呢?假如二分已經知道了最小值n,如何通過n求符合答案的個數m?這裡我們可以列舉x,由於x3 1e 16x3 1e1 6,x最多列舉到215444即可,倘若列舉y就得列舉到1e16左右,很明顯列舉x是最優方法。由於y x 3 ny x3 ...