改了好久qwq(本人刚刚学编程,望大佬指导)
题目:
计算指定矩形区间数字和。
第一行输入n,m,接下来n行,每行m个数。
接下来q 行每行四个数xi,yi,xj,yj。(xi,yi)是子矩形左上标,(xj,yj)是子矩形右下标。
第i行输出第i个询问答案。
2 2
1 1
1 1
1
1 1 2 2
4
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,a[1010][1010],q,S[1010][1010];
int main() {
cin>>n>>m;
for(ll i=1; i<=n; i++) {
for(ll k=1; k<=m; i++) {
cin>>a[i][k];
S[i][k]=S[i-1][k]+S[i][k-1]-S[i-1][k-1]+a[i][k];
}
}
cin>>q;
for(ll i=1; i<=q; i++) {
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
cout<<S[x2][y2]-S[x1-1][y1]-S[x2][y1-1]+S[x1-1][y1-1];
}
return 0;
}
不知道为啥数组越界了