#include <bits/stdc++.h>

using namespace std;
#define IOS ios::sync_with_stdio(false), cin.tie(0);
typedef long long LL;

//const int N=;
int n, m, q;
int x11, y11, x2, y2;

int main()
{
    IOS
    cin>>n>>m>>q;
    vector<vector<LL>> a(n+1, vector<LL>(m+1)), s(n+1, vector<LL>(m+1));

    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            cin>>a[i][j];
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
    while(q--){
        cin>>x11>>y11>>x2>>y2;
        cout<<s[x2][y2]-s[x11-1][y2]-s[x2][y11-1]+s[x11-1][y11-1]<<"\n";
    }
    return 0;
}

二维前缀和的模板题,注意全局变量起名不要用y1

然后就是可以下标从1开始存,方便前缀和

最后输出即可

#牛客春招刷题训练营#