luogu P4513 小白逛公園 (區間合併)

2022-03-02 16:04:45 字數 971 閱讀 9363

思路: 很基礎的區間合併,開四個陣列:

num: 區間數字的和

lsum:從左端點起最大連續欄位和

rsum:從右端點起最大連續欄位和

sum:區間最大連續欄位和

然後按照以前合併的思路合併下就完事了。

好久沒寫區間合併的題。。還被卡了一陣子,屬實弟弟

實現**;

#includeusing

namespace

std;

#define lson l,mid,rt<<1

#define rson mid+1,r,rt<<1|1

#define ls rt<<1

#define rs rt<<1|1

const

int m = 1e6+10

;struct

nodet[m

<<2

];void pushup(int

rt)void update(int p,int c,int l,int r,int

rt)

int mid = (l + r) >> 1

;

if(p <=mid) update(p,c,lson);

else

update(p,c,rson);

pushup(rt);

}node query(

int l,int r,int l,int r,int

rt)

int mid = (l + r) >> 1

;

if(r <= mid) return

query(l,r,lson);

else

if(l > mid) return

query(l,r,rson);

else

}int

main()

else

}return0;

}

P4513 小白逛公園

小新經常陪小白去公園玩,也就是所謂的遛狗啦 在小新家附近有一條 公園路 路的一邊從南到北依次排著n nn個公園,小白早就看花了眼,自己也不清楚該去哪些公園玩了。一開始,小白就根據公園的風景給每個公園打了分 小新為了省事,每次遛狗的時候都會事先規定乙個範圍,小白只可以選擇第a aa個和第b bb個公園...

P4513 小白逛公園 線段樹

線段樹是一門比較刁鑽的手藝.此題我們需要維護 4 個變數 amx 代表當前節點的最大值.lmx 代表當前節點以左端點為起點的區間最大值.rmx 代表當前節點以右端點為結尾的區間最大值.sum 代表整段的和.然後我們在 push up 的時候,也是要做蠻多工作.lc 為左端點,rc 為右端點.lmx ...

P4513 小白逛公園 線段樹

小新經常陪小白去公園玩,也就是所謂的遛狗啦 在小新家附近有一條 公園路 路的一邊從南到北依次排著nn個公園,小白早就看花了眼,自己也不清楚該去哪些公園玩了。一開始,小白就根據公園的風景給每個公園打了分 小新為了省事,每次遛狗的時候都會事先規定乙個範圍,小白只可以選擇第aa個和第bb個公園之間 包括a...