同余(mod)
给定一个长度为 n 的序列 a0,a1,…,an−1 与一个长度为 m 的序列 b0,b1,…,bm−1。
对于 m−1≤i≤n−1,定义 ci=∑j=0m−1bjai−j。
给定参数 p。接下来有 q 次修改,每次会修改 a 的一个元素。你需要在每次修改后,判断所有 cimodp 是否相同。
样例 1 输入
0 1
5 3 10 2
1 0 1 0 0
0 1 1
2 0
0 0
0 1
3 1
2 1
3 0
1 1
4 1
0 1
4 0
样例 1 输出
No
Yes
No
No
No
Yes
No
No
No
No
样例 1 解释
在该样例中,p=2,且 b0=0,b1=b2=1,因此对于 2≤i≤4,有 ci≡ai−1+ai−2(mod2)。
每次修改后的 c2,c3,c4 模 2 的值如下表所示:
| 修改编号 | 修改操作 | (c2,c3,c4)mod2 | 输出 |
|---|
| 1 | a2←0 | (1,0,0) | No |
| 2 | a0←0 | (0,0,0) | Yes |
| 3 | a0←1 | (1,0,0) | No |
| 4 | a3←1 | (1,0,1) | No |
| 5 | a2←1 | (1,1,0) | No |
| 6 | a3←0 | (1,1,1) | Yes |
| 7 | a1←1 | (0,0,1) | No |
| 8 | a4←1 | (0,0,1) | No |
| 9 | a0←1 | (0,0,1) | No |
| 10 | a4←0 | (0,0,1) | No |
样例 2
见附加文件中的 mod2.in 和 mod2.ans。
该样例满足测试点 8 的限制。
样例 3
见附加文件中的 mod3.in 和 mod3.ans。
该样例满足测试点 12 的限制。
样例 4
见附加文件中的 mod4.in 和 mod4.ans。
该样例满足测试点 20 的限制。
输入格式
本题有多组测试数据。
第一行包含两个整数 c,T,分别表示测试点编号和测试数据组数。样例满足 c=0。
对于每组测试数据:
- 第一行包含四个正整数 n,m,q,p;
- 第二行包含 n 个整数 a0,a1,…,an−1;
- 第三行包含 m 个整数 b0,b1,…,bm−1;
- 接下来 q 行,每行包含两个整数 x,y,表示将 ax 修改为 y。
输出格式
对于每组测试数据,输出 q 行:
- 对于每次修改,若修改后所有 cimodp 均相同,则输出
Yes,否则输出 No。
提示
对于所有测试数据,保证:
- 1≤T≤5;
- 1≤n,m≤3000;
- 1≤q≤106;
- 2≤p≤109+7;
- 0≤ai,bi<p;
- 0≤x<n,0≤y<p。
| 测试点编号 | n,m≤ | q≤ | 特殊性质 |
|---|
| 1∼3 | 100 | 104 | 无 |
| 4∼7 | 500 | 2×105 | 无 |
| 8∼11 | 3000 | 106 | A |
| 12∼16 | 3000 | 5×105 | B |
| 17∼18 | 3000 | 5×105 | 无 |
| 19∼20 | 3000 | 106 | 无 |
- 特殊性质 A:保证 p 为素数且 bi=0。
- 特殊性质 B:保证 p=2。