順序表應用8:最大子段和之動態規劃法
Description
給定n(1<=n<=100000)個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時定義子段和為0,依此定義,所求的最優值為: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。 例如,當(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)時,最大子段和為20。
注意:本題目要求用動態規劃法求解,只需要輸出最大子段和的值。
Input
第一行輸入整數n(1<=n<=100000),表示整數序列中的資料元素個數;
第二行依次輸入n個整數,對應順序表中存放的每個資料元素值。
Output
輸出所求的最大子段和
Sample
Input
6 -2 11 -4 13 -5 -2
Output
20
Hint
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main()
{
int n, b = 0, maxx = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
}
for(int i = 1; i <= n; i++)
{
b = max((b + a[i]), a[i]);
if(b > maxx)
{
maxx = b;
}
}
printf("%d\n", maxx);
return 0;
}
相關文章
- 順序表應用7:最大子段和之分治遞迴法遞迴
- 動態規劃求解最大子段和 (兩種寫法+還原最優解)動態規劃
- 動態規劃---例題3.最大子段和問題動態規劃
- 分治法 && 動態規劃 洛谷P1115 最大子段和動態規劃
- 靜態順序表和動態順序表 對比
- 最大子陣——動態規劃DP動態規劃
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- 動態規劃法動態規劃
- 動態規劃-最大子矩陣和(ZOJ 1074 TO THE MAX )動態規劃矩陣
- 關於動態規劃法動態規劃
- 貪心法和動態規劃法的區別動態規劃
- 動態規劃:最長上升子序列動態規劃
- 最長上升子序列動態規劃動態規劃
- 動態規劃求最長降序序列動態規劃
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 動態規劃之數的劃分動態規劃
- 動態規劃8:最優編輯str1-->str2動態規劃
- ActiveReports 報表應用教程 (8)---互動式報表之動態過濾
- 最大子段和 | 最大子矩陣 | 最大M子段和矩陣
- 【動態規劃(一)】動態規劃基礎動態規劃
- 動態規劃-最長上升子序列模型動態規劃模型
- 動態規劃(最長公共子序列LCS)動態規劃
- 動態規劃---求硬幣最優解動態規劃
- 順序表應用3:元素位置互換之移位演算法演算法
- 演算法提高 數的劃分 動態規劃 無序演算法動態規劃
- 動態規劃動態規劃
- [動態規劃] 六、最長迴文子串動態規劃
- 動態規劃7:最長上升子序列LIS動態規劃
- 淺談動態規劃法與貪心法和回溯法的聯絡動態規劃
- 順序表應用1:多餘元素刪除之移位演算法演算法
- 順序表應用4:元素位置互換之逆置演算法演算法
- 動態規劃最大欄位和動態規劃
- 應用動態規劃思想解決實際問題動態規劃
- CMake和靜態庫順序
- “最長公共字串子序列”問題的動態規劃法演算法字串動態規劃演算法
- 動態規劃之01揹包問題(最易理解的講解)動態規劃