2023年5月校賽賽前練習 最大連續區間和

2021-07-31 21:45:14 字數 1361 閱讀 9989

time limit: 1 sec  

memory limit: 32 mb

submit: 43  

solved: 2 [

submit][

status]

你的任務是找出一串數字中,哪一些連續數字之和最大,並輸出這個和。

例如:輸入的一串數字為「-1 2 -3 4 2 -5 6 -5」,你需要輸出「7」(在該輸入中,和最大的一些連續數字為「4 2 -5 6」)。

第一行為測試用例的組數。

每組輸入包括兩行,第一行為一串數的個數n (n<=10^5)。

隨後一行為該串數字,每兩個數中間會用空格隔開。(題目保證每個數的絕對值小於10^9)

對每一組測試用例,輸出最大和是多少

23-1 -2 -38-1 2 -3 4 2 -5 6 -5

-17

[ submit][

status]

思路:

方法一:分治法

方法二:maxn為最大連續數字之和,temp為當前連續數字之和

方法三:用a[i]表示以第i個數字結尾的最大連續數字和,a陣列中最大的數即為結果。

注意:雖然每個數字在int表示範圍內,但運算後(相加)的數字可能大於int

歡迎交流:

下面的方法二是正確的,我寫的方法三有點點錯誤,希望大神給菜鳥我指出,萬分感謝

方法二:

#include#include#includeusing namespace std;

//const int maxn = 100000 + 5;

typedef long long ll;

int main()

} printf("%lld\n", maxn);

} return 0;

}

方法三:

我寫的方法三有點點錯誤,希望大神給菜鳥我指出,萬分感謝

#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 100000 + 5;

ll r[maxn];//用r[i]表示以第i個數字結尾的最大連續數字和,r陣列中最大的數即為結果。

bool cmp(int a, int b)

int main(){

int t;

scanf("%d", &t);

while (t--)

{ memset(r, 0, sizeof(r));

int n;

scanf("%d",&n);

for (int i = 0; i

2023年SCU校賽總結

這是某個我不認識的人在討論裡面催我做總結的,最近太忙啦,畫個圈圈詛咒你,哼 第二次打川大校賽呀,去年就被江安校區那條大江震撼了,然後今年帶學弟學妹他們去看他們反而看了一會就抄小路走了,然後找到了比賽地點,然後樓裡面一堆電科大佬的說,我還是沒有去找秦隊長面基,差距太大了啊,然後本來打算吃飯的,然後學弟...

2023年5月學習計畫

5月17日 非監督學習 聚類,降維 結束,明天完成作業,開始下一周的課程 下午 matlab bp神經網路,緊接著這段時間完成所有bp神經網路的課程,做出kaggle上面影象識別的題目 5月16晚 python爬蟲 明日上午 coursera機器學習 明日下午 matlab 晚上 android 目...

計畫 2023年5月計畫

由於上次計畫制定時已經是月中了,弄得有點多,削減了一點。從清北回來,最後一次藉著眾dalao意外失利,我接近ak了 有乙個資料點有點小問題,拿了290分 小激動,愈發砥礪前行。1 完成四月計畫 5.11日 2 清北學堂day1題目 18日 3 清北學堂day2題目 25日 4 清北學堂day3題目 ...