題目:
n個整數組成的序列a11,a22,a33,…,ann, 求該序列如aii+ai+1i+1+…+ajj的連續子段和的最大值。當所給的整數均為負數時和為0。
例如:-2,11,-4,13,-5,-2,和最大的子段為:11,-4,13。和為20。
input
第1行:整數序列的長度n(2 <= n <= 50000)
第2 - n + 1行:n個整數(-10^9 <= aii <= 10^9)
output
輸出最大子段和。
sample input
6sample output-211
-413
-5-2
20解題思路:dp水題,就是尋找最大子串行和,解題關鍵就是保證前一節點的序列和為正,才能滿足子串行和加上當前這位的數值的時候,比當前數值要大。
ac**:
#include#include#include#include#define maxn 100005
using namespace std;
typedef long long ll;
int num[maxn];
ll dp[maxn];
int main()
memset(dp,0,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;i++)
ll maxx=-maxn;
for(int i=1;i<=n;i++)
printf("%lld\n",maxx);
return 0;
}
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...