hdu 1559 最大子矩阵 枚举
枚举的思路,只是利用了行压缩来优化
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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;
}