1 条题解

  • 0
    @ 2025-3-20 11:36:06
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int n,m,q;
        cin >> n >> m >> q;
        //接收数组
        vector<vector<int>> arr(n+2 , vector<int> (m+2 , 0));
        for ( int i = 1; i < n+1; i++ ) {
            for ( int j = 1; j < m+1; j++ ) {
                cin >> arr[i][j];
            }
        }
        //前缀和数组
        vector<vector<int>> sums(n+2 , vector<int> (m+2 , 0));
        for ( int i = 1; i < n+1; i++ ) {
            for ( int j = 1; j < m+1; j++ ) {
                sums[i][j] = arr[i][j] + sums[i][j-1] + sums[i-1][j] - sums[i-1][j-1];
            }
        }
        //求范围和
        for ( int i = 1; i <= q; i++ ) {
            int x1,y1,x2,y2;
            cin >> x1 >> y1 >> x2 >> y2;
            int sum = 0;
            sum = sums[x2][y2] - sums[x2][y1-1] - sums[x1-1][y2] + sums[x1-1][y1-1];
            cout << sum << endl; 
        }
    
        return 0;
    }
    

    信息

    ID
    144
    时间
    2000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    11
    已通过
    4
    上传者