简单二维前缀和求助
查看原帖
简单二维前缀和求助
113384
Stfb楼主2024/8/11 10:18
#include <cstdio>
#include <cstring>
#define N 125
using namespace std;
int n,a[N][N],sum[N][N],ans=0;
int max(int x,int y){if(x<y)return y;return x;}
int main()
{
	memset(sum,0,sizeof(sum));
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		for(int j=1;j<=n;++j)
			scanf("%d",&a[i][j]),sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];
	for(int x1=1;x1<=n;++x1)
		for(int y1=1;y1<=n;++y1)
			for(int x2=1;x2<=x1;++x2)
				for(int y2=1;y2<=y1;++y2)
					ans=max(ans,sum[x1][y1]-sum[x1][y2]-sum[x2][y1]+sum[x2][y2]);
	printf("%d\n",ans);
	return 0;
}
2024/8/11 10:18
加载中...