藍橋杯 歷屆試題 最大子陣

2022-05-06 02:42:07 字數 1049 閱讀 2695

時間限制: 1sec 記憶體限制: 128mb 提交: 70 解決: 14

題目描述

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

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

樣例說明 

取最後一列,和為10。 

資料規模和約定 

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

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

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

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

樣例輸入

3  3 

-1 -4 3

3 4 -1

-5 -2 8

樣例輸出

10

解題思路:

1.先是乙個預處理,然後是進行按照貪心演算法計算的,當前面的結果小於0時候,那麼則捨棄前面的累加的數值,應為即使加上了,那麼也只會讓後面的累加的值變小,這樣便找不到最大的值。

2.注意預處理後sum[i][j]表示計算第i行前j個元素的和。

注意事項:

1.一定要注意順序 if(s<=0) s=0;  if(s>max) max=s;這兩個語句的順序是不能交換的,不能用乙個不存的結果0和之前得到的最大值相比。

#include#define maxn 520

long

long

n,m,sum[maxn][maxn],max;

int main(void

) }

/*printf

for(int i=1;i<=n;i++)

printf("\n");

}*/max=sum[1][1

];

for(int i=1;i<=m;i++)}}

printf(

"%lld

",max);

return0;

}

藍橋杯 歷屆試題 最大子陣

歷屆試題 最大子陣 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個n m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a的子矩陣指在a中行和列均連續的一塊。輸入格式 輸入的第一行包含兩個整數n,m,分別表示矩陣a的行數和列數。接下來n行,每行m個整數,表示矩...

藍橋杯 歷屆試題 最大子陣

歷屆試題 最大子陣 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個n m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a的子矩陣指在a中行和列均連續的一塊。輸入格式 輸入的第一行包含兩個整數n,m,分別表示矩陣a的行數和列數。接下來n行,每行m個整數,表示矩...

藍橋杯 歷屆試題 最大子陣

歷屆試題 最大子陣 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個n m的矩陣a,求a中的乙個非空子矩陣,使這個子矩陣中的元素和最大。其中,a的子矩陣指在a中行和列均連續的一塊。輸入格式 輸入的第一行包含兩個整數n,m,分別表示矩陣a的行數和列數。接下來n行,每行m個整數,表示矩...