站外题求助
  • 板块题目总版
  • 楼主imzoeg
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/13 16:43
  • 上次更新2024/8/13 19:16:05
查看原帖
站外题求助
1422873
imzoeg楼主2024/8/13 16:43

改了好久qwq(本人刚刚学编程,望大佬指导)
题目:

F. 【CPP2-5.例2】二维前缀和

题目描述

计算指定矩形区间数字和。

输入格式

第一行输入n,mn,m,接下来nn行,每行mm个数。

接下来qq 行每行四个数xi,yi,xj,yjx_i,y_i,x_j,y_j。(xi,yix_i,y_i)是子矩形左上标,(xj,yjx_j,y_j)是子矩形右下标。

输出格式

第ii行输出第ii个询问答案。

输入输出样例

输入数据1

2 2
1 1
1 1
1
1 1 2 2

输出数据 1

4

说明 / 提示

数据范围

  • 1≤n≤10001\le n\le 1000
  • 1≤m≤10001\le m\le 1000
  • 1≤q≤10001\le q\le 1000
  • −100000≤a(i,j)n≤100,000-100000\le a(i,j)n\le 100,000

以下是我的代码:

#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;
}

不知道为啥数组越界了

2024/8/13 16:43
加载中...