二维前缀和模板

二维前缀和模板

#include
#include
#include
#include
using namespace std;
int n,m,sq[105][105],sum[105][105],x1,x2,y1,y2;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	{
		cin>>sq[i][j];	
	}
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	{
		sum[i][j]=sq[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
	}
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++) 
	{
		cout<<sum[i][j]<<' '; 	
		if(j==m) cout<<endl;
		
	}
	scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
	printf("%d\n",sum[x2][y2]+sum[x1-1][y1-1]-sum[x2][y1-1]-sum[x1-1][y2]);
}

你可能感兴趣的:(模板)