8.子矩阵的和(c++)

2022/2/5 14:12:32

本文主要是介绍8.子矩阵的和(c++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

输入一个 nn 行 mm 列的整数矩阵,再输入 qq 个询问,每个询问包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。

对于每个询问输出子矩阵中所有数的和。

输入格式

第一行包含三个整数 n,m,qn,m,q。

接下来 nn 行,每行包含 mm 个整数,表示整数矩阵。

接下来 qq 行,每行包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示一组询问。

代码如下:

#include<iostream>
using namespace std;
const int N= 1010;//类似于C语言中的#define N 1010; 
int n,m,q;
int a[N][N],s[N][N];//定义两个二维数组; 
int main()
{
	scanf("%d%d%d",&n,&m,&q);
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	scanf("%d",&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];//定义i行j列所有元素的和; 
	while(q--)
	{
		int x1,x2,y1,y2;
		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
		printf("%d\n",s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]);// 
	}
	return 0;
}



这篇关于8.子矩阵的和(c++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程