hdu 1559 最大子矩阵 枚举

枚举的思路,只是利用了行压缩来优化

View Code
#include <stdio.h>
#include <string.h>

int map[1005][1005],ar[1005];

int main()
{
int T,m,n,x,y,i,j,k,sum,ans;
scanf("%d",&T);
while (T--)
{
scanf("%d%d%d%d",&m,&n,&x,&y);
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
scanf("%d",&map[i][j]);
}
}
for (i=0,ans=0;i<=m-x;i++)
{
memset(ar,0,sizeof(ar));
for (j=i;j<i+x;j++)
{
for (k=0;k<n;k++)
ar[k]+=map[j][k];
}
for (j=0;j<=n-y;j++)
{
sum=0;
for (k=j;k<j+y;k++)
sum+=ar[k];
if(sum>ans)ans=sum;
}
}
printf("%d\n",ans);
}
return 0;
}



posted @ 2011-12-15 21:17  104_gogo  阅读(193)  评论(0编辑  收藏  举报