動態規劃 最大子段和
lyk喜歡幹一些有挑戰的事,比如說求區間最大子段和。它知道這個題目有o(n)的做法。於是它想加強一下。
也就是說,lyk一開始有n個數,第i個數字是ai,它找來了乙個新的數字p,並想將這n個數字中恰好乙個數字替換成p。要求替換後的最大子段和盡可能大。
lyk知道這個題目仍然很簡單,於是就扔給大家來送分啦~
注:最大子段和是指在n個數中選擇一段區間[l,r](l<=r)使得這段區間對應的數字之和最大。
輸入格式(songfen.in)
第一行兩個數n,p。
接下來一行n個數ai。
輸出格式(songfen.out)
乙個數表示答案。
輸入樣例
5 3-1 1 -10 1 -1
輸出樣例
5樣例解釋
將第三個數變成3後最大子段和為[2,4]。
資料範圍
對於30%的資料n<=100。
對於另外30%的資料ai,p>=0。
對於100%的資料n<=1000,-1000<=ai,p<=1000。
# include using namespace std;
int main()
int t,ans=-1e18;
for(int i=0;i} printf("%d",ans);
return 0;
}
動態規劃 最大子段和
給定乙個陣列a a0,a1,a2,an 求陣列中 連續子段之和 的最大值。1 最簡單的演算法 窮舉法 計算所有的連續子段之和,得出最大值 窮舉法 計算所有的子串行和 o n 3 public static int maxsum1 int data max tmp max tmp max return...
動態規劃 最大子段和
題目描述 給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入輸出格式 輸入格式 第一行是乙個正整數nn,表示了序列的長度。第二行包含n個絕對值不大於10000的整數a i,描述了這段序列。輸出格式 乙個整數,為最大的子段和是多少。子段的最小長度為1。輸入輸出樣例 輸入樣例 1 72 4 3 ...
動態規劃 最大子段和
最大子段和是乙個十分經典的問題。給定由n個整數 包含負整數 組成的序列a1,a2,an,求該序列子段和的最大值。當所有整數均為負值時定義其最大子段和為0。例如,當 a1,a2,a7,a8 1,3,7,8,4,12,10,6 時,最大子段和為 23 bj是1到j位置的最大子段和 a1a2 ai aj ...