最大子段和

2021-09-02 02:33:07 字數 842 閱讀 7537

給出一段序列,選出其中連續且非空的一段使得這段和最大。

輸入格式:

第一行是乙個正整數nn,表示了序列的長度。

第二行包含nn個絕對值不大於1000010000的整數a_iai​,描述了這段序列。

輸出格式:

乙個整數,為最大的子段和是多少。子段的最小長度為11。

輸入樣例#1:複製

7

2 -4 3 -1 2 -4 3

輸出樣例#1:複製

4
【樣例說明】

2,-4,3,-1,2,-4,3,中,最大的子段和為4,該子段為3,-1,2

【資料規模與約定】

對於40\%40%的資料,有n ≤ 2000n≤2000。

對於100\%100%的資料,有n ≤ 200000n≤200000。

一小只蒟蒻在刷dp 題,思路:求i-1個最大和,第i個最大和就等於max(f[i-1]+a[i],a[i]);

所以對於例題來說f[i]依次等於 2,-2,3,2,4,0,3;sort一下就能 求出最大值來啦hahaha

#includeusing namespace std;

long long a[200010];

int main()

for(int i=1;ia[i])

a[i]=a[i-1]+a[i];

} sort(a,a+n);

cout

}

最大子段和

設a 是n個整數的序列,稱為該序列的子串行,其中1 i j n.子串行的元素之和稱為a的子段和.例如,a 2,11,4,13,5,2 那麼它的子段和是 長度為1的子段和 2,11,4,13,5,2 長度為2的子段和 9,7,9,8,7 長度為3的子段和 5,20,4,6 長度為4的子段和 18,15...

最大子段和

問題表述 n個數 可能是負數 組成的序列a1,a2,an.求該序列 例如 序列 2,11,4,13,5,2 最大子段和 11 4 13 20。1 窮舉演算法 o n3 o n2 2 分治法 將序列a 1 n 從n 2處截成兩段 a 1 n 2 a n 2 1 n 例項 三 最大子段和 問題表述 n個...

最大子段和

再給頂的n個數的陣列中選出連續的若干個數,使得他們的和是最大的,即最大連續自序列和.列如.序列.1 2 3 1 6 5 9 結果 當取子串行 3,1,6,5,9 結果12 我的思路.1.最大連續子串行的開頭是在1.n之中.的最大連續和 2.求出以i,開頭的最大連續和,此時開頭已經確定了,那麼通過列舉...