HDU 1081 To The Max(最大子矩阵)
2012-08-18 19:23
316 查看
/* 题意:求子矩阵的最大和 题解:这一类型的题,关键在压缩,将矩阵压缩为一维数组,然后转变为求最大字段和 */ #include <iostream> using namespace std; const int nMax = 107; const int INF = 0x7fffffff; //int d[nMax][nMax][nMax]; int N; int map[nMax][nMax]; int sum[nMax][nMax]; int res[nMax], _ans[nMax]; int _max; int main() { while(scanf("%d", &N) != EOF && N) { _max = -INF; int i, j, k; for(i = 1; i <= N; ++ i) { sum[i][0] = 0; for(j = 1; j <= N; ++ j) { scanf("%d", &map[i][j]); sum[i][j] = sum[i][j - 1] + map[i][j]; } } for(i = 1; i <= N; ++ i) { for(j = i; j <= N; ++ j) { _ans[0] = 0; for(k = 1; k <= N; k ++) { res[k] = sum[k][j] - sum[k][i - 1]; _ans[k] = _ans[k - 1] + res[k]; } int min = 0; for(k = 1; k <= N; k ++) { if(_ans[k] - min > _max) _max = _ans[k] - min; if(_ans[k] < min) min = _ans[k]; } } } printf("%d\n", _max); } return 0; }
相关文章推荐
- hdu 1081、poj1050 To The Max 最大子矩阵和
- hdu1081 To The Max--DP(最大子矩阵和)
- hdu 1081 To The Max(最大子矩阵)
- HDU 1081 To The Max(dp最大子矩阵和)
- hdu 1081 To The Max(最大子矩阵和,dp)
- HDU 1081 & POJ 1050 To The Max (最大子矩阵和)
- HDU 1081 To The Max(最大子矩阵和)
- hdu-1081 To The Max (最大子矩阵和)
- HDU 1081 To The Max(dp最大子矩阵和)
- hdu 1081 To The Max(最大子矩阵)
- hdu 1081 To The Max ( 最大子矩阵 )
- hdu 1081 To The Max 【最大子矩阵和】
- HDU - 1081 To The Max ( 最大子矩阵)
- hdu 1081 To The Max ****poj 1050(最大子矩阵和)DP
- HDU 1081 To The Max--DP--(最大子矩阵)
- dp - 最大子矩阵和 - HDU 1081 To The Max
- hdu 1081 To The Max(最大子矩阵和)
- HDU 1081 To The Max 最大子矩阵和 .
- hdu 1081 To The Max 最大子矩阵和(dp)
- HDU 1081 To The Max(最大子矩阵和)