U431200 子矩阵和 题解
  • 板块题目总版
  • 楼主Tmc2012
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/5/13 17:09
  • 上次更新2024/5/13 17:18:52
查看原帖
U431200 子矩阵和 题解
1328532
Tmc2012楼主2024/5/13 17:09

二维前缀和,可以列表分析

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int N=1010;
LL a[N][N],s[N][N];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	LL n,m,q;
	cin>>n>>m>>q;
	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--){
		LL x1,y1,x2,y2;
		cin>>x1>>y1>>x2>>y2;
		LL ans=s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1];
		cout<<ans<<'\n';
	}
	return 0;
}

2024/5/13 17:09
加载中...