慄醬有乙個長度為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
1t≤15,2
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 ...