最大子段和

2021-08-04 04:35:36 字數 903 閱讀 8108

送分題(songfen)

time limit:1000ms memory limit:128mb

題目描述

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。

o(n)來求最大子段和

#include

#include

#include

#include

#include

#include

using

namespace

std;

int n,p,a[1009],ans;

int main()

}printf("%d",ans);

return

0;}

最大子段和

設a 是n個整數的序列,稱為該序列的子串行,其中1 i j n.子串行的元素之和稱為a的子段和.例如,a 2,11,4,13,5,2 那麼它的子段和是 長度為1的子段和 2,11,4,13,5,2 長度為2的子段和 9,7,9,8,7 長度為3的子段和 5,20,4,6 長度為4的子段和 18,15...

最大子段和

問題表述 n個數 可能是負數 組成的序列a1,a2,an.求該序列 例如 序列 2,11,4,13,5,2 最大子段和 11 4 13 20。1 窮舉演算法 o n3 o n2 2 分治法 將序列a 1 n 從n 2處截成兩段 a 1 n 2 a n 2 1 n 例項 三 最大子段和 問題表述 n個...

最大子段和

再給頂的n個數的陣列中選出連續的若干個數,使得他們的和是最大的,即最大連續自序列和.列如.序列.1 2 3 1 6 5 9 結果 當取子串行 3,1,6,5,9 結果12 我的思路.1.最大連續子串行的開頭是在1.n之中.的最大連續和 2.求出以i,開頭的最大連續和,此時開頭已經確定了,那麼通過列舉...