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題目 ...