#1228. 数列前缀和 4

数列前缀和 4

题目描述

给定一个 nn 行 mm 列的矩阵 aa,有 qq 次询问,每次给定 (u,v)(u, v) 和 (x,y)(x, y),请你求出:

$$\left(\sum_{i=u}^{x} \sum_{j=v}^{y} a_{i,j}\right) \bmod 2^{64}$$

也就是求出以 (u,v)(u, v) 为左上角、(x,y)(x, y) 为右下角的矩形元素和对 2642^{64} 取余数的结果。

输入格式

本题单测试点内有多组测试数据。

输入的第一行是一个整数 TT,表示数据组数。接下来依次给出每组数据的输入信息:

第一行三个整数,依次表示矩阵的行数 nn、列数 mm 以及询问数 qq。

接下来 nn 行,每行 mm 个整数。第 ii 行第 jj 个整数表示 ai,ja_{i,j}。

接下来 qq 行,每行四个整数 u,v,x,yu, v, x, y,表示一组询问。

输出格式

为了避免输出过大,对于每组数据,请输出一行一个整数,表示本组数据的所有询问的答案的按位异或和。

数据范围

对全部的测试点,保证 1≤T≤101 \le T \le 10,1≤n,m≤1031 \le n, m \le 10^3,1≤q≤1061 \le q \le 10^6,0≤ai,j<2640 \le a_{i,j} < 2^{64},1≤u≤x≤n1 \le u \le x \le n,1≤v≤y≤m1 \le v \le y \le m。

数据保证 ∑(n×m)≤106\sum (n \times m) \le 10^6,∑q≤106\sum q \le 10^6。

样例

输入样例 1

1
2 3 3
1 2 3
4 5 6
1 1 2 3
1 2 1 2
2 3 2 3

输出样例 1

17

提示

样例中三次询问的答案依次为 2121、22、66,其按位异或和为 21⊕2⊕6=1721 \oplus 2 \oplus 6 = 17。

用 unsigned long long 做二维前缀和即可天然完成  mod 264\bmod 2^{64}。