(環上)最大子段和

2021-09-10 12:34:47 字數 786 閱讀 6612

最大連續子段和是一類問題,即求乙個序列最大連續子串行的和。

問:給出n個元素分別為a1,a2,...,an,求出其最大連續子段和。

2.1 動態規劃:

設a[ i ]為該序列第 i 個元素,c[ i ]存放前 i 個序列的最大子段和,那麼c[ i ]有兩種可能結果:

2.2 問題2:a1,a2,...,an 首尾相連,求出該環上最大子段和。

2.3 問題2解題思路:

2.4 問題2**示例:

#include#includeusing namespace std;

const int maxn = 2e5+10;

const int inf = 0x3f3f3f3f;

int a[maxn];

typedef long long ll;

ll sum[maxn],minsum[maxn];

int main()

ll mx = -inf,mi = inf;

for(int i = 0;i < n;i++)

ll ans = max(s-mi,mx);

printf("%lld\n",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,開頭的最大連續和,此時開頭已經確定了,那麼通過列舉...