您的位置:首页 > 其它

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

2014-01-13 12:21 239 查看
题意:给你一个矩阵,求最大子矩阵。。

 

#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;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm hdu 动态规划