#include"bits/stdc++.h"
using namespace std;
/*
二维数组的前缀和
*/
const int N=1e3;
int a[N][N];//原数组
int b[N][N];//前缀和数组
int n;
int m;
int main()
{
cin>>n>>m;
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++)
{
b[i][j]=b[i-1][j]+b[i][j-1]+a[i][j]-b[i-1][j-1];
//最后减b[i-1][j-1]是因为前面加b的时候会重复加2次
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<b[i][j]<<" ";
}
puts("");
}
}
二维数组的前缀和
最新推荐文章于 2024-08-12 19:18:27 发布