警示后人!!!
查看原帖
警示后人!!!
312605
Megumimwf楼主2023/1/19 11:11
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll read(){
	ll x=0, f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch == '-'){
			f = -1;
		}
		ch = getchar();
	}
	while(ch>='0' && ch<='9'){
		x = x * 10 + ch - 48;
		ch = getchar();
	}
	return x * f;
}
void write(ll x){
	if(x < 0) putchar('-'), x = -x;
	if(x > 9){
		write(x / 10);
	}
	putchar(x % 10 + '0');
	return;
}
ll n, m, c, p, q, a[10086][10086], sum[10086][10086], s = -1e13;
int main(){
	n = read(); m = read(); c = read();
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			a[i][j] = read();
			sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + a[i][j];
		}
	}
	for(int i=1;i<=n-c+1;++i){
		for(int j=1;j<=n-c+1;++j){
			ll x = i+c-1;
			ll y = j+c-1;
			if(s <= sum[x][y] - sum[x][j-1] - sum[i-1][y] + sum[i-1][j-1]){
				s = sum[x][y] - sum[x][j-1] - sum[i-1][y] + sum[i-1][j-1];
				p = i;
				q = j;
			}
		}
	}
	write(p);
	printf(" ");
	write(q);
	return 0;
}

注意你左上角的点你的范围,他是只能到了n-c+1,给后面c长的矩阵留地方,而且不要忘记+1和-1

2023/1/19 11:11
加载中...