题解
【入门】子矩阵求和
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; long long a[1001][1001]; long long b[1001][1001]; int main(){ int n,m,k; cin>>n>>m>>k; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; //求全部的网格 b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a[i][j];//二维数组前缀和 } } while(k--){ int x1,y1,x2,y2; cin>>x1>>y1>>x2>>y2; //求当前部分的和 cout<<b[x2][y2]-b[x1-1][y2]-b[x2][y1-1]+b[x1-1][y1-1]<<endl; } }
- 1