社区讨论

求调

灌水区参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m6lm0xzb
此快照首次捕获于
2025/02/01 11:04
去年
此快照最后确认于
2025/02/01 19:43
去年
查看原帖
P1719
CPP
#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;
}
题目看这里

回复

0 条回复,欢迎继续交流。

正在加载回复...