二维数组前缀和
稍微麻烦一些,分为两步 — 图片来自AcWing大佬
一、求s[i,j]
二、求两个坐标子矩阵中的和
预处理alist
n, m, q = map(int,input().split())
ll = [[] for i in range(n + 1)]
ll[0] = [0 for i in range(m)]
for i in range(1, n + 1):
ll[i] = list(map(int,('0 ' + input()).split()))
s = [[0 for i in range(m + 1)] for i in range(n + 1)]
for i in range(1,n + 1):
for j in range(1,m + 1):
s[i][j] = ll[i][j] + s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1]
while q:
q -= 1
x1, y1, x2, y2 = map(int,input().split())
print(s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] + s[x1 - 1][y1 - 1])