KY63 最大子矩阵

发布时间:2024年01月17日

二维前缀和板子
ti

#include<bits/stdc++.h>

using namespace std;

int n;
int t;
int sum[105][105];

int Sum(int x, int y){  //求矩阵和 
	int t = -1e8;
	for(int i = x; i <= n; i ++ ){
		for(int j = y; j <= n; j ++ ){
			int op = sum[i][j] - sum[x - 1][j] - sum[i][y - 1] + sum[x - 1][y - 1];
			t = max(op, t);
		}
	}
	return t;
} 

int main()
{
	while(cin>>n){
		memset(sum, 0, sizeof(sum));
		for(int i = 1; i <= n; i ++ ){
			for(int j = 1; j <= n; j ++ ){
				cin>>t;
				sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + t;
			}
		}
		int ans = -1e8;
		for(int i = 1; i <= n; i ++ ){  
			for(int j = 1; j <= n; j ++ ){ 
				ans = max(ans, Sum(i, j));
			}
		}
		cout<<ans<<endl;
	}
	return 0;
} 
文章来源:https://blog.csdn.net/qiaodxs/article/details/135646154
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。