最大子矩陣 藍橋杯

2021-09-19 10:27:19 字數 914 閱讀 8668

問題描述

給定乙個n*m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。

其中,a的子矩陣指在a中行和列均連續的一塊。

輸入格式

輸入的第一行包含兩個整數n, m,分別表示矩陣a的行數和列數。

接下來n行,每行m個整數,表示矩陣a。

輸出格式

輸出一行,包含乙個整數,表示a中最大的子矩陣中的元素和。

樣例輸入

3 3-1 -4 3

3 4 -1

-5 -2 8

樣例輸出

10樣例說明

取最後一列,和為10。

資料規模和約定

對於50%的資料,1<=n, m<=50;

對於100%的資料,1<=n, m<=500,a中每個元素的絕對值不超過5000。

涉及的知識點:最大欄位和問題(一維陣列)二維陣列的字首和問題

解題思路:將二維陣列按列求字首和,那麼 pre[j][k] - pre[i-1][k] 就是第k列從第i行加到第j行的數列和,把他當作一維陣列求字首和,即再按照行從左到右求最大值即可。

#include

#include

#include

#include

#include

using namespace std;

int v[

505]

[505];

int pre[

505]

[505];

int m,n;

intmain()

}}printf

("%d"

,ans)

;return0;

}

藍橋 最大子矩陣

問題描述 給定乙個n m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a的子矩陣指在a中行和列均連續的一塊。輸入格式 輸入的第一行包含兩個整數n,m,分別表示矩陣a的行數和列數。接下來n行,每行m個整數,表示矩陣a。輸出格式 輸出一行,包含乙個整數,表示a中最大的子矩陣中的元素...

藍橋杯 最大子陣

2.類似的題 zoj problem set 1074 給定乙個n m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a的子矩陣指在a中行和列均連續的一塊。樣例說明 取最後一列,和為10。資料規模和約定 對於100 的資料,1 n,m 500,a中每個元素的絕對值不超過5000。...

藍橋杯 最大子陣

給定乙個nxm的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a的子矩陣指在a中行和列均連續的一塊。輸入格式 輸入的第一行包含兩個整數n,m,分別表示矩陣a的行數和列數。接下來n行,每行m個整數,表示矩陣a。輸出格式 輸出一行,包含乙個整數,表示a中最大的子矩陣中的元素和。3 3...