题目链接:上海交大oj 1002. 二哥种花生
#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
#include<cstring>
#include<cmath>
#define INF 0x3f3f3f3f
using namespace std;
int sum[1010][1010];
int main()
{
int L,W;
scanf("%d%d",&L,&W);
int tmp;
for(int i=1;i<=L;i++)
{
for(int j=1;j<=W;j++)
{
scanf("%d",&tmp);
sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + tmp;
}
}
int m,n;
scanf("%d%d",&m,&n);
int max = -INF;
for(int i=1;i+m-1<=L;i++)
{
for(int j=1;j+n-1<=W;j++)
{
tmp = sum[i+m-1][j+n-1] - sum[i-1][j+n-1] - sum[i+m-1][j-1] + sum[i-1][j-1];
if(tmp>max)
max = tmp;
}
}
printf("%d\n",max);
return 0;
}