HDU 1559 最大子矩阵

来源:互联网 发布:淘宝购物券网站 编辑:程序博客网 时间:2024/06/10 02:51

对数据进行压缩  然后枚举每个矩形即可

#include "stdio.h"#include "string.h"#include "math.h"int a[1001][1001];int main(){int ans,count,k,t,n,m,x,y,i,j;scanf("%d",&t);while (t--){scanf("%d%d%d%d",&n,&m,&y,&x);memset(a,0,sizeof(a));for (i=1;i<=n;i++)for (j=1;j<=m;j++){scanf("%d",&k);a[i][j]+=k+a[i][j-1];}for (i=1;i<=n;i++)for (j=1;j<=m;j++)a[i][j]+=a[i-1][j];ans=0;for (i=1;i+x-1<=n;i++)for (j=1;j+y-1<=m;j++){count=a[i+x-1][j+y-1]-a[i+x-1][j-1]-a[i-1][j+y-1]+a[i-1][j-1];if (count>ans) ans=count;}printf("%d\n",ans);}return 0;}


0 0
原创粉丝点击