51nod1049 最大子段和 動態規劃

2021-08-30 17:57:06 字數 739 閱讀 8504

n個整數組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的連續子段和的最大值。當所給的整數均為負數時和為0。

例如:-2,11,-4,13,-5,-2,和最大的子段為:11,-4,13。和為20。

收起

第1行:整數序列的長度n(2 <= n <= 50000)

第2 - n + 1行:n個整數(-10^9 <= a[i] <= 10^9)

輸出最大子段和。
6

-211

-413

-5-2

20
思路:因為最大 連續子串行和只可能是以位置0~n-1中某個位置結尾。當遍歷到第i個元素時,判斷在它前面的連續子串行和是否大於0,如果大於0,則以位置i結尾的最大連續子串行和為元素i和前門的連續子串行和相加;否則,則以位置i結尾的最大連續子串行和為元素i。

#include#include#include using namespace std;

typedef long long ll;

const int maxn=200005;

int a[maxn];

ll maxsequence3(int a, int len)

}return maxsum;

}int main()

51Nod 1049 最大子段和

n個整數組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的連續子段和的最大值。當所給的整數均為負數時和為0。例如 2,11,4,13,5,2,和最大的子段為 11,4,13。和為20。input 第1行 整數序列的長度n 2 n 50000 第2 n 1行 n個整數 ...

51nod 1049 最大子段和

1049 最大子段和 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 n個整數組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的連續子段和的最大值。當所給的整數均為負數時和為0。例如 2,11,4,13,5,2,和最大的子段為 11,4,1...

51Nod 1049 最大子段和

1049 最大子段和 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 n個整數組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的連續子段和的最大值。當所給的整數均為負數時和為0。例如 2,11,4,13,5,2,和最大的子段為 11,4,1...