附上**
#include
long
int a[
200002];
long
int dp[
200002];
//動歸陣列
intmax
(int x,
int y)
intmain()
dp[1]
= a[1]
;//當只有第乙個元素進行比較時,最大值為的乙個元素本身
for(
int i =
2;i <= n;i++
)printf
("%ld"
,maxi)
;return0;
}
刪除線格式
這道題是一道動態規劃題目,也可以使用貪心演算法來做,dp[i]的意思是到原陣列的第i個元素時,最大子段和的值,再計算dp[i]時,需要比較dp[i-1] 和a[i]的大小,如果前者較大,就說明加上a[i]後最大子段和變大了,是我們想要的,如果加上a[i]後反而變小了,那前i個數的最大子段和就是a[i]本身。
maxi用來儲存dp陣列中最大的數,就是最後的答案。
上面說了這道題還可以用貪心演算法解,
附上**
#include
long
int a[
200002];
long
int sum;
intmax
(int x,
int y)
intmain()
for(
int i =
2;i <= n;i++
)printf
("%d"
,maxi)
;return0;
}
刪除線格式
簡單說一下,maxi永遠儲存的都是數列前i項的最大子段和的值,不一定是從頭開始的,而是從前i項的任意位置開始,再任意位置結束,只是最大值。
這兩段**都是可以ac的。
刪除線格式
溜了溜了~~
洛谷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。輸...
洛谷P1115 最大子段和
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...