转载请注明出处:http://blog.csdn.net/a1dark
分析:这题由于时间比较松、所以捆绑之后暴力就解、时间1000ms、
#include<stdio.h> #define N 1005 int a[N][N]; int b[N]; int main() { int t,i,j,m,n,x,y,k,l,w,z; scanf("%d",&t); while(t--){ int max=-1000;int sum; scanf("%d%d%d%d",&m,&n,&x,&y); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=0,j=i+x-1;j<m;i++,j=i+x-1){ for(k=0;k<n;k++){ b[k]=0; for(l=i;l<=j;l++) b[k]+=a[l][k]; } for(w=0,z=w+y-1;z<n;w++,z=w+y-1){ sum=0; for(k=w;k<=z;k++) sum+=b[k]; if(sum>max) max=sum; } } printf("%d\n",max); } return 0; }