求调
  • 板块灌水区
  • 楼主_TLE_
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/2/1 11:04
  • 上次更新2025/2/1 19:43:54
查看原帖
求调
1641424
_TLE_楼主2025/2/1 11:04

P1719

#include <bits/stdc++.h>
using namespace std;

int arr[1000][1000];
int num[1000][1000] = {{0}};
int n = 0;
int ans = 0;

void Get_Num() {
	for ( int i = 0 ; i < n ; i++ )
		num[0][i] = 0;
	for ( int i = 0 ; i < n ; i++ ){
		num[i][0] = 0;
	}
	for ( int i = 0 ; i <= n ; i++ ){
		for ( int j = 0 ; j <= n ; j++ ){
			num[i][j] = arr[i][j];
		}
	}
	
	for ( int i = 0 ; i < n ; i++ ){
		for ( int j = 0 ; j < n ; j++ ){
			num[i][j] = num[i][j] + num[i - 1][j] + num[i][j - 1] - num[i - 1][j - 1];
		}
	}
	
}

int Get_Ans(){
	int max = 0;
	int area_size = 0;
	for ( int x1 = 0 ; x1 < n ; x1++ ){
		for ( int y1 = 0 ; y1 < n ; y1++ ){
			for ( int x2 = 0 ; x2 < n ; x2++ ){
				for ( int y2 = 0 ; y2 < n ; y2++ ){
					area_size = num[x2][y2] - num[x2][y1 - 1] - num[x1 - 1][y2] + num[x1 - 1][y1 - 1];
					if(area_size > max){
						max = area_size;
					}
				}
			}
		}
	}
	
	return max;
	
}

int main () {
	cin >> n;
	for ( int i = 0 ; i < n ; i++ ){
		for ( int j = 0 ; j < n ; j++ ){
			cin >> arr[i][j];
		}
	}
	Get_Num();
	ans = Get_Ans();
	cout << ans;
  	return 0;
}

题目看这里

2025/2/1 11:04
加载中...