題目**
題目描述
給出一段序列,選出其中連續且非空的一段使得這段和最大。
輸入輸出格式
輸入格式:
第一行是乙個正整數nn
,表示了序列的長度。
第二行包含nn
個絕對值不大於
1000010000
的整數a_iai
,描述了這段序列。
輸出格式:
乙個整數,為最大的子段和是多少。子段的最小長度為11。
輸入輸出樣例
輸入樣例
#1:
72 -4 3 -1 2 -4 3
輸出樣例
#1:
4說明
【樣例說明】
2,-4,3,-1,2,-4,32,−4,3,−1,2,−4,3
中,最大的子段和為
4,該子段為
3,-1,23,−1,2
.【資料規模與約定】
對於40\%40%
的資料,有
n ≤ 2000
n≤2000。對於
100\%100%
的資料,有
n ≤ 200000
n≤200000
。題解
一般我們在做dp動態規劃類問題的思路肯定是:
1、設計狀態 把當前的局面表達
2、設計狀態轉移方程 我從**來/要到那裡去
對於這題呢就是:
設計狀態 dp[i]=以a[i]結尾的最大子段和
2、設計狀態轉移方程 dp[i]=max(dp[i-1]+a[i],a[i])
**實現:
//最大子段和
//dp[i]
為[1,i]
位的最大子段和
#include
#include
usingnamespacestd;
intmax(inta,intb)
intdp[200010],a[200010],ans=-1e9;
intmain()elsedp[0]=a[0];
}}elsescanf("%d",&ans);
printf("%d",ans);
return0;
}
洛谷P1115 最大子段和 dp
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 第一行是乙個正整數nn,表示了序列的長度。第二行包含nn個絕對值不大於1000010000的整數a iai 描述了這段序列。輸出格式 乙個整數,為最大的子段和是多少。子段的最小長度為11。輸入樣例 1 複製 7 2 4 3 1 2 4 ...
洛谷P1115最大子段和
洛谷1115 最大子段和 題目描述 給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入輸出格式 輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個...
洛谷 P1115 最大子段和
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...