题目链接:
思路:感觉就是1081这题差不多,但就是加了一个限制条件。。。
View Code
1 #include2 #include 3 const int N=1010; 4 using namespace std; 5 6 int map[N][N]; 7 8 int main(){ 9 int _case;10 scanf("%d",&_case);11 while(_case--){12 int m,n,x,y;13 scanf("%d%d%d%d",&m,&n,&x,&y);14 for(int i=1;i<=m;i++){15 for(int j=1;j<=n;j++){16 scanf("%d",&map[i][j]);17 }18 }19 int ans=0;20 for(int i=1;i<=m;i++){21 for(int j=1;j<=n;j++){22 map[i][j]+=map[i][j-1]+map[i-1][j]-map[i-1][j-1];23 if(i>=x&&j>=y){24 int tmp=map[i][j]-map[i-x][j]-map[i][j-y]+map[i-x][j-y];25 if(tmp>ans)ans=tmp;26 }27 }28 }29 printf("%d\n",ans);30 }31 return 0;32 }