只有两个点AC
查看原帖
只有两个点AC
332549
幽灵特工楼主2021/2/5 13:07

样例过了。 简单的二维前缀和,哪里错了呢?

#include<bits/stdc++.h>
using namespace std;
int n,m,c;
int a[2000][2000],dp[2000][2000];
int main(){
	cin>>n>>m>>c;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			dp[i][j]=dp[i-1][j]+dp[i][j-1]+a[i][j]-dp[i-1][j-1];
		}
	}
	int x=-10000000,y=-10000000,ans=-100000000;
	for(int i=1;i<=n-c;i++){
		for(int j=1;j<=m-c;j++){
			if(ans<dp[i+c][j+c]-dp[i-1][c+j]-dp[i+c][j-1]+dp[i-1][j-1]){
				x=i;y=j;ans=dp[i+c][j+c]-dp[i-1][c+j]-dp[i+c][j-1]+dp[i-1][j-1];
			}
		}
	}
	cout<<x<<" "<<y;
}
2021/2/5 13:07
加载中...