51nod 1051 最大子矩陣和

2021-09-28 17:56:01 字數 899 閱讀 9902

描述

乙個m*n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。

例如:3*3的矩陣:

-1 3 -1

2 -1 3

-3 1 2

和最大的子矩陣是:

3 -1

-1 3

1 2輸入

第1行:m和n,中間用空格隔開(2 <= m,n <= 500)。

第2 - n + 1行:矩陣中的元素,每行m個數,中間用空格隔開。(-10^9 <= m[i] <= 10^9)

輸出

輸出和的最大值。如果所有數都是負數,就輸出0。

輸入樣例

3 3-1 3 -1

2 -1 3

-3 1 2

輸出樣例

7思路

枚舉子矩陣的第一行,固定第一行,列舉矩陣的最後一行。

每次記錄當前子矩陣的列元素的和,壓縮狀態求最大子段和。

要注意,初值應賦int的最小值,而不是0;注意m,和n的輸入順序。

ac**

#includeusing namespace std;

int m,n;

int a[510][510];

int sum[510];

int max1,ans;

int maxsum(int aa,int n)

return msum;

}int main()

}printf("%lld\n",ans);

}

51 nod1051 最大子矩陣和

1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2 ...

51nod1051 最大子矩陣和

1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2 ...

51nod 1051 最大子矩陣和

1051 最大子矩陣和 基準時間限制 2 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙個m n的矩陣,找到此矩陣的乙個子矩陣,並且這個子矩陣的元素的和是最大的,輸出這個最大的值。例如 3 3的矩陣 1 3 1 2 1 3 3 1 2 和最大的子矩陣是 3 1 1 3 1 2i...