HDU 1081(经典动归,求最大子矩阵)

来源:互联网 发布:sqoop 更新数据 编辑:程序博客网 时间:2024/05/22 07:05

题意:给你一个矩阵,求最大子矩阵。。

 

#include <cstdio>#include <cstring>#include <climits>int array[109][109];int dp[109];int sum[109];#define MAX(a, b) ((a) > (b) ? (a) : (b))int main(){    int n, i, j, k, _max, t;    while (scanf("%d", &n) != EOF)    {        for (i = 1; i <= n; ++i)            for (j = 1; j <= n; ++j)                scanf("%d", array[i]+j);        _max = INT_MIN;        for (i = 1; i <= n; ++i)        {            memset(sum, 0, sizeof(int) * (n+1));            for (k = 0; i+k <= n; ++k)            {                for (j = 1; j <= n; ++j)                {                    sum[j] += array[i+k][j];                    dp[j] = MAX(sum[j], sum[j] + dp[j-1]);                    _max = MAX(_max, dp[j]);                }            }        }        printf("%d\n", _max);    }    return 0;}


 

0 0
原创粉丝点击