本蒟蒻用了下抽象代码,居然过了
#include<bits/stdc++.h>
using namespace std;
int a[1010][1010],f[1010][1010];
int main()
{
int n,m,c,ansx,ansy,mx=-INT_MAX;
cin>>n>>m>>c;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j];
}
for(int i=c;i<=n;i++)
for(int j=c;j<=n;j++)
{
int p=f[i][j]-f[i-c][j]-f[i][j-c]+f[i-c][j-c];
if(p>mx)
{
mx=p;
ansx=i-c+1;
ansy=j-c+1;
}
}
cout<<ansx<<" "<<ansy;
return 0;
}
可以看到,在循环内,我把所有m写成了n,但是样例过了,测试点也全对,所以建议增加几个特殊测试点