AcWing135 最大子序和

2022-09-09 18:15:21 字數 908 閱讀 6557

link

/*

陣列沒開夠,爆零兩行淚

longlong開成int,爆零兩行淚

多組忘清空,爆零兩行淚

dp 沒初值,爆零兩行淚

深搜沒邊界,爆零兩行淚

廣搜忘出隊,爆零兩行淚

輸入沒加 &,爆零兩行淚

模數沒看見,爆零兩行淚

-1 不輸出,爆零兩行淚

越界不特判,爆零兩行淚

線段樹開一倍,爆零兩行淚

無向變有向,爆零兩行淚

題意沒審清,爆零兩行淚

檔名起錯,爆零兩行淚

除錯忘刪除,爆零兩行淚

沒用freopen,爆零兩行淚

*/#include

using namespace std;

const

int n=

300010

;int n,m;

int s[n]

,q[n]

;int

main()

int res=s[1]

;int hh=

0,tt=0;

for(

int i=

1;i<=n;i++

)printf

("%d\n"

,res)

;return0;

}/*考慮按照子串行結尾進行分類

(1,2,3,k,n) 類

再從這幾類中找到最優解

考慮ans[k],在a[k]~a[k-m]尋找

再考慮求區間和,預處理字首和s[k]

可知ans[k]=min(s[k]-s[k-j]),k∈[1,m];

考慮用單調佇列求解

複雜度o(n)

注意:子串行長度至少為1

*/

AcWing 135 最大子序和

acwing 135.最大子序和 大佬講解 原題解鏈結見文末 單調佇列 o n 首先單調佇列,不同一般的佇列,他需要的stl是deque 雙端佇列,因為我們要支援隊頭插入和隊尾插入.單調佇列做法大致如下 首先我們需要找到單調性,這道題目的顯而易見.我們知道區間和的做法,一般都是字首和,而字首和的求法...

Acwing135 最大子序和

輸入乙個長度為n的整數序列,從中找出一段長度不超過m的連續子串行,使得子串行中所有數的和最大。注意 子串行的長度至少是1。輸入格式 第一行輸入兩個整數n,m。第二行輸入n個數,代表長度為n的整數序列。同一行數之間用空格隔開。輸出格式 輸出乙個整數,代表該序列的最大子序和。資料範圍 1 n,m 300...

AcWing 135 最大子序和

輸入乙個長度為n的整數序列,從中找出一段長度不超過m的連續子串行,使得子串行中所有數的和最大。注意 子串行的長度至少是1。輸入格式 第一行輸入兩個整數n,m。第二行輸入n個數,代表長度為n的整數序列。同一行數之間用空格隔開。輸出格式 輸出乙個整數,代表該序列的最大子序和。資料範圍 1 n,m 300...