vijos P1083 小白逛公園

2022-04-30 05:00:12 字數 899 閱讀 7385

【演算法】線段樹

【題解】

學自:的回答)

回溯時維護一段區間的以下域:

以上域在葉子節點中的值,都等於節點代表公園的評分

設當前節點為 x,左孩子為 l,右孩子為 r。則:

x.suml = max(l.suml, l.sum + r.suml);

x.sumr = max(r.sumr, r.sum + l.sumr);

x.sum = l.sum + r.sum;

x.subsum = max(l.subsum, r.subsum, l.sumr + r.suml);

以上計算過程可以寫成函式,引數結構體,返回結構體。

查詢時要返回結構體。

#include#include

using

namespace

std;

const

int inf=0x3f3f3f3f,maxn=500010

;struct cyct[maxn*3

];int a[maxn],l[maxn*3],r[maxn*3

],n,m;

cyc calc(cyc a,cyc b)

void build(int k,int l,intr);

else }

void update(int k,int x,int

num)

;

else

}cyc ask(

int k,int l,intr)}

intmain()

else update(1

,b,c);}}

view code

vijos P1083 小白逛公園

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

VIJOS P1083 小白逛公園

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

Vijos1083 小白逛公園

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