【題目描述】
對於給定的整數序列a=,找出兩個不重合連續子段,使得兩子段中所有數字的和最大。我們如下定義函式 d(a):
d(a)=max1≤s1≤t1【輸入】
第一行是乙個整數t(≤30),代表一共有多少組資料。
接下來是t組資料。
每組資料的第一行是乙個整數,代表資料個資料n(2≤n≤50000) ,第二行是n個整數a1,a2,…,an(|ai|≤10000)。
【輸出】
輸出乙個整數,就是d(a)的值。
【輸入樣例】110
1 -1 2 2 3 -3 4 -4 5 -5
【輸出樣例】
13【心得】
正向來一遍,算出開頭到當前元素之間的最大連續子段和;反著再來一遍,算出從當前元素開始至結尾的最大連續子段和。再正著來一遍,求兩者和的最大即可。
【ac**】
#include
#include
#include
using
namespace std;
const
int inf=
0x7fffffff
;const
int n=
50005
;int a[n]
,f[n]
,g[n]
,m[n]
;int
main()
ans=
-inf;
for(
int i=n;i>
0;i--
) cout<
}return0;
}
資訊學奧賽一本通 小球(drop)
許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...
資訊學奧賽一本通 小球(drop)
this drop is gonna last forever!許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個...
資訊學奧賽一本通(C 版)
資訊學奧賽一本通 c 版 總目錄 1.資訊學奧賽一本通 c 版 刷題 記錄 2.資訊學奧賽一本通 c 版 第一部分 c 語言 第一章 c 語言入門 3.資訊學奧賽一本通 c 版 第一部分 c 語言 第二章 順序結構程式設計 4.資訊學奧賽一本通 c 版 第一部分 c 語言 第三章 程式的控制結構 5...