题目描述
给定进制数 p∈{2,3}。定义 p 进制下的位运算如下:
- 对于 0≤x<pd,设 x 的 p 进制表示为 (xd−1⋯x1x0)p(不足 d 位的用前导 0 补齐),定义 popcountp(x) 为 x 的 p 进制表示下非零位的个数,即 ∑i=0d−1[xi>0]。
- 对于 0≤x,y<pd,设 x,y 的 p 进制表示分别为 $\overline{(x_{d-1} \cdots x_1 x_0)}_p, \overline{(y_{d-1} \cdots y_1 y_0)}_p$(不足 d 位的用前导 0 补齐),定义如下三种运算:
- p 进制按位与:$x \text{ and}_p y = \overline{(z_{d-1} \cdots z_1 z_0)}_p$,其中 zi=min(xi,yi) (0≤i<d);
- p 进制按位或:$x \text{ or}_p y = \overline{(z_{d-1} \cdots z_1 z_0)}_p$,其中 zi=max(xi,yi) (0≤i<d);
- p 进制按位异或(即 p 进制不进位加法):$x \text{ xor}_p y = \overline{(z_{d-1} \cdots z_1 z_0)}_p$,其中 zi=(xi+yi)modp (0≤i<d)。
给定两个长度为 n 的序列 a,w 和一个长度为 pd 的序列 z,其中对于所有 1≤i≤n,0≤ai<pd。对于所有 0≤u<pd,定义 u 的生成序列 F(u) 如下:
- 对于 1≤i≤n,令$$b_i = A \cdot \text{popcount}_p(a_i \text{ and}_p u) + B \cdot \text{popcount}_p(a_i \text{ or}_p u) + C \cdot \text{popcount}_p(a_i \text{ xor}_p u),$$其中 A,B,C 为给定的非负整数。
- 令 F(u) 为将 b 从小到大排序后得到的序列,即 F(u)=sorted([b1,b2,…,bn])。
有 q 次询问,每次询问给定 A,B,C,l1,r1,l2,r2,求
$$\left( \sum_{i=l_1}^{r_1} \sum_{j=l_2}^{r_2} z_i w_j F(i)_j \right) \bmod 2^{32}.$$
输入格式
从标准输入读入数据。
输入的第一行包含三个非负整数 n,d,p。
输入的第二行包含 n 个非负整数 a1,a2,…,an。
输入的第三行包含 n 个非负整数 w1,w2,…,wn。
输入的第四行包含 pd 个非负整数 z0,z1,…,zpd−1。
输入的第五行包含一个正整数 q,表示询问次数。
输入的第 i+5 (1≤i≤q) 行包含七个非负整数 A,B,C,l1,r1,l2,r2,表示第 i 次询问。
输出格式
输出到标准输出。
输出 q 行,第 i (1≤i≤q) 行一个非负整数表示第 i 次询问的答案。
3 2 2
0 0 2
1 1 2
3 4 4 4
5
1 7 2 0 1 1 1
3 3 5 0 2 2 3
5 2 10 0 1 2 3
3 9 7 0 3 3 3
5 6 1 0 1 2 3
36
304
312
736
182
提示
【子任务】
对于所有测试数据,均有:
- 1≤n≤3×105,0≤d≤12,p∈{2,3};
- 对于所有 1≤i≤n,均有 0≤ai<pd;
- 对于所有 1≤i≤n,均有 0≤wi<232;
- 对于所有 0≤i<pd,均有 0≤zi<232;
- 1≤q≤3×105;
- 0≤A,B,C≤109,0≤l1≤r1<pd,1≤l2≤r2≤n。
| 子任务编号 |
分值 |
n≤ |
d≤ |
p= |
q≤ |
特殊性质 |
| 1 |
5 |
5000 |
12 |
2 |
5 |
无 |
| 2 |
15 |
3×105 |
10 |
^ |
105 |
| 3 |
11 |
^ |
12 |
3×105 |
A |
| 4 |
8 |
^ |
^ |
B |
| 5 |
17 |
C |
| 6 |
无 |
| 7 |
11 |
5 |
3 |
C |
| 8 |
16 |
^ |
无 |
特殊性质 A:所有询问的给出的三元组 (A,B,C) 均相同。
特殊性质 B:对于所有询问,均有 l1=r1。
特殊性质 C:对于所有询问,均有 l1=0 且 r1=pd−1。
【提示】
本题输入输出规模较大,请使用较为快速的输入输出方式。