uestcOJ秋實大哥與花 線段樹

2021-09-06 20:12:58 字數 1495 閱讀 3130

秋實大哥是乙個儒雅之人,晝聽笙歌夜醉眠,若非月下即花前。

所以秋實大哥精心照料了很多花朵。現在所有的花朵排成了一行,每朵花有乙個愉悅值。

秋實大哥每天要對著某一段連續的花朵歌唱,然後這些花朵的愉悅值都會增加乙個相同的值vv(vv可能為負)。

同時他想知道每次他唱完歌後這一段連續的花朵的愉悅值總和是多少。

第一行有乙個整數nn,表示花朵的總數目。

第二行包含nn個整數a_ia_i,表示第ii朵花初始的愉悅值。

第三行包含乙個整數mm,表示秋實大哥唱了mm天的歌。

接下來mm行,每行包含三個整數ll rr vv,表示秋實大哥對著[l,r][l,r]這個區間內的花朵歌唱,每朵花的愉悅值增加了vv。

1≤n,m,a_i,∣v∣≤1000001≤n,m,a_i,∣v∣≤100000,1≤l≤r≤n。1≤l≤r≤n。

輸出共mm行,第ii行表示秋實大哥完成第ii天的歌唱後,那一段花朵的愉悅值總和。

input

output

3

0 0 0

31 2 1

1 2 -1

1 3 1

2

03

problem id

1057

time limit

1000 ms

memory limit

64 mib

output limit

64 mib

source

2015 uestc training for data structures

第一次接觸線段樹的可以先看下這篇文章打個底(線段樹基礎知識學習筆記)

注意sum的資料範圍,用int wa了一次。。。乖乖用long long吧,保險一點

#include #include #include #include #include #include using namespace std;

typedef long long ll;

const int maxn = 1e5+5;

int a[maxn];

struct node

}tree[maxn*4];

void push_up(int x)

void push_down(int x)

}void build(int x,int l,int r)

else

}void update(int x,int l,int r,ll val)

else

}ll query(int x,int l, int r)

else

}int main()

build(1,1,n);

scanf("%d",&m);

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

return 0;

}

UESTC 1073 秋實大哥與線段樹

uestc 1073 學習本無底,前進莫徬徨。秋實大哥對一旁玩手機的學弟說道。秋實大哥是乙個愛學習的人,今天他剛剛學習了線段樹這個資料結構。為了檢驗自己的掌握程度,秋實大哥給自己出了乙個題,同時邀請大家一起來作。秋實大哥的題目要求你維護乙個序列,支援兩種操作 一種是修改某乙個元素的值 一種是詢問一段...

線段樹 (更新區間查詢點)秋實大哥與小朋友

problem description 秋實大哥以賙濟天下,鋤強扶弱為己任,他常對天長嘆 安得廣廈千萬間,大庇天下寒士俱歡顏。所以今天他又在給一群小朋友發糖吃。他讓所有的小朋友排成一行,從左到右標號。在接下去的時間中,他有時會給一段區間的小朋友每顆糖,有時會問第x個小朋友手裡有幾顆糖。這對於沒上過學...

CDOJ 1071 秋實大哥下棋

limit 1s 65535kb 勝負胸中料已明,又從堂上出奇兵。秋實大哥是乙個下棋好手,獨孤求敗的他覺得下棋已經無法滿足他了,他開始研究一種新的玩法。在乙個n m的棋盤上,放置了k個車,並且他在棋盤上標出了q個矩形,表示矩形內部是戰略要地。秋實大哥要求乙個矩形內的每乙個格仔,都至少能被一輛在矩形內...