POJ1050最大子矩阵面积

题目:http://poj.org/problem?id=1050

自己用了n^4的像暴搜一样的方法,感到有点奇怪——真的是这样?

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[105][105],d[105][105],mx,ss;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            int sum[105]={0};
            for(int h=0;i-h;h++)
            {
                ss=0;
                for(int l=0;j-l;l++)
                {
                    sum[l]+=a[i-h][j-l];
                    ss+=sum[l];
                    d[i][j]=max(d[i][j],ss);
                }
            }
            mx=max(mx,d[i][j]);
        }
    printf("%d",mx);
    return 0;    
}

 

posted on 2018-02-21 21:35  Narh  阅读(106)  评论(0编辑  收藏  举报

导航