P1115 最大子段和

2021-09-07 14:27:53 字數 797 閱讀 4829

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

輸入格式:

輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。

第2行包含n個絕對值不大於10000的整數a[i],描述了這段序列。

輸出格式:

輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。

輸入樣例#1:

7

2 -4 3 -1 2 -4 3

輸出樣例#1:

4

【樣例說明】2 -4 3 -1 2 -4 3

【資料規模與約定】

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

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

我怎麼記得這個題目貪心也可以做。

dp做的話:

dp[i]=max(dp[i-1]+a[i],a[i]); 

d[i]表示前i個數的最優值。

1 #include 2

using

namespace

std;

3long

long n,a[200005],dp[200005

]; 45

intmain()

11 dp[0]=a[0

];

12for(int i=1;i)

15 sort(dp,dp+n);

16 cout<1]<17return

0;

18 }

P1115 最大子段和

給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...

P1115 最大子段和

給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...

P1115 最大子段和

題目傳送門p1115 給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 第一行是乙個正整數n,表示了序列的長度。第二行包含n個絕對值不大於10000的整數ai 描述了這段序列。輸出格式 乙個整數,為最大的子段和是多少。子段的最小長度為1。輸入樣例 1 7 2 4 3 1 2 4 3輸出...