限長最大連續和

2022-05-08 01:36:10 字數 977 閱讀 5259

給你乙個長度為 n 的整數序列 ,要求從中找出一段連續的長度不超過 m 的子串行,使得這個序列的和最大。

第一行為兩個整數 n,m;

第二行為 n 個用空格分開的整數序列,每個數的絕對值都小於100。

僅乙個整數,表示連續長度不超過 m 的最大子串行和。

6 4

1 -3 5 1 -2 3

7
對於 30%的資料:1<=n,m<=10,000

對於 60%的資料:1<=n,m<=1,000,000

對於100%的資料:1<=n,m<=10,000,000

分析:

一道顯然的單調佇列題目。。。由於本題要求區間和,故不難想到本題正解qwq。

code:

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;

6int n,m,a[10000005];7

long

long sum[10000005

];8 inline void qr(int &s)

16for(;c>='

0'&&c<='

9';c=getchar())

17 s=(s<<1)+(s<<3)+c-'0'

;18 s*=f;19}

20int

main()

28 q.push_back(0

);29

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

37 printf("

%lld\n

",ans);

38//

system("pause");

39return0;

40 }

304 限長最大連續和

給你乙個長度為 n 的整數序列 要求從中找出一段連續的長度不超過 m 的子串行,使得這個序列的和最大。第一行為兩個整數 n,m 第二行為 n 個用空格分開的整數序列,每個數的絕對值都小於100。僅乙個整數,表示連續長度不超過 m 的最大子串行和。641 351 237對於 30 的資料 1 n,m ...

UOJ 304 限長最大連續和

題目描述 給你乙個長度為 n 的整數序列 要求從中找出一段連續的長度不超過 m 的子串行,使得這個序列的和最大。輸入描述 第一行為兩個整數 n,m 第二行為 n 個用空格分開的整數序列,每個數的絕對值都小於100。輸出描述 僅乙個整數,表示連續長度不超過 m 的最大子串行和。樣例輸入 6 41 3 ...

最大連續和

這個問題對我來說還挺難的,當初做dp時水過去了,但沒徹底理解,這次打算好好分析一下,爭取徹底搞懂。首先,像 1 1 2 2 3 3 4 4 5 5這樣的數列,想要找連續最大和,可以有很多種方法,從最慢的列舉o n 3 到最快的動態規劃o n 毫無疑問,我們要選擇複雜度低的演算法。所以我這裡就只分析兩...