藍橋訓練 求陣列連續區間內之和最大

2021-10-03 07:52:12 字數 758 閱讀 9762

思路:

n是1e5的資料量 所以n2鐵定t

所以換了掃一遍 now記錄當前大小 初始為0

如果當前元素大於0 直接加上

若小於零 加上之後看現在是否還大於等於0

如果是 就繼續 如果不是 就把now置零

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define inf 0x3f3f3f3f

#define mid (t[k].l+t[k].r)>>1

#define cl(a,b) memset(a,b,sizeof(a))

#define dbg printf("aaa\n")

using

namespace std;

const

int maxn=

1e5+10;

int a[maxn]

;int

main()

int now=

0,maxx=

-inf;

for(

int i=

1;i<=n;i++

)else

if(maxx}printf

("%d\n"

,maxx)

;return0;

}

C 動態求連續區間和(樹狀陣列)

給定 n 個數組成的乙個數列,規定有兩種操作,一是修改某個元素,二是求子數列 a,b 的連續和。輸入格式 第一行包含兩個整數 n和 m,分別表示數的個數和操作次數。第二行包含 n個整數,表示完整數列。接下來 m行,每行包含三個整數 k,a,b k 0,表示求子數列 a,b 和 k 1,表示第 a 個...

怎樣用取尺法處理連續區間內數字同樣

常常會遇到類似以下這樣的問題 給你n個數。由0和1組成,問1或者0的最大連續長度是多少 110001101的最大連續長度就是中間3個連續的0。所以是3 這裡略微總結出了乙個取尺法,以後遇到這種題目就不須要再思考太多細節了 int l,r 1,ans 0 for l 1 l n l r 1 當中n是陣...

動態求連續區間和 樹狀陣列與線段樹

樹狀陣列,這玩意吧,我也整不明白具體的原理,說的好聽點就是注重實踐,說不好聽點就是揹著這幾個函式會寫就行了 給定 n 個數組成的乙個數列,規定有兩種操作,一是修改某個元素,二是求子數列 a,b 的連續和。輸入格式 第一行包含兩個整數 n 和 m,分別表示數的個數和操作次數。第二行包含 n 個整數,表...