最大子列和問題

2021-09-28 19:30:44 字數 884 閱讀 5237

最大子列和問題 (20 分)

給定k個整數組成的序列,「連續子列」被定義為,其中 1≤i≤j≤k。「最大子列和」則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。

本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資料特點如下:

資料1:與樣例等價,測試基本正確性;

資料2:102個隨機整數;

資料3:103個隨機整數;

資料4:104個隨機整數;

資料5:105個隨機整數;

輸入格式:

輸入第1行給出正整數k (≤100000);第2行給出k個整數,其間以空格分隔。

輸出格式:

在一行中輸出最大子列和。如果序列中所有整數皆為負數,則輸出0。

輸入樣例:

6-2 11 -4 13 -5 -2

輸出樣例:

20看完題目我就笑了,呵呵,這個題的加強版(時間卡的更緊,資料量更大)的題目我暑期集訓的時候做過,當時做了一天吧,後來找到了這個方法:

從頭開始加,加乙個,如果結果比最大值大,則重新整理最大值,如果結果是負數,則刪除前面全部資料的和,從當前位置重複這個步驟。

所以這道題目應該是這週pta最簡單的一道題目了。主要還有一點,時間開到了50000ms,資料量限制到了100000,所以其實這道題暴力破解估計也ok的。

下面放出我的連空間都只需要開幾個int的**(一本自豪)

嘿嘿嘿其實暑期集訓還是學了不少東西的嘿嘿嘿

#include

using

namespace std;

intmain()

cout << result;

return0;

}

最大子列和問題

給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。輸入格式 輸入第1行給出正整數 k 100000 第2行給出k個整數,其間以空格分隔。輸出格式...

最大子列和問題

給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。輸入格式 輸入第1行給出正整數 k 100000 第2行給出k個整數,其間以空格分隔。輸出格式...

最大子列和問題

給出乙個序列,求出最大子列和。演算法一 long maxsum int a,int n return maxsum 這是乙個窮舉的演算法,有三個巢狀的for迴圈,時間複雜度為o n 3 在計算的時候有很多不必要的重複項,例如當i 0,j 3時,和的計算為 a 1 a 2 a 3 當i 0,j 4時,...