【演算法】線段樹
【題解】
學自:的回答)
回溯時維護一段區間的以下域:
以上域在葉子節點中的值,都等於節點代表公園的評分
設當前節點為 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#includeview codeusing
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);}}
vijos P1083 小白逛公園
小新經常陪小白去公園玩,也就是所謂的遛狗啦 在小新家附近有一條 公園路 路的一邊從南到北依次排著n個公園,小白早就看花了眼,自己也不清楚該去哪些公園玩了。一開始,小白就根據公園的風景給每個公園打了分 小新為了省事,每次遛狗的時候都會事先規定乙個範圍,小白只可以選擇第a個和第b個公園之間 包括a b兩...
VIJOS P1083 小白逛公園
洛谷傳送門 jdoj傳送門 小新經常陪小白去公園玩,也就是所謂的遛狗啦 在小新家附近有一條 公園路 路的一邊從南到北依次排著n個公園,小白早就看花了眼,自己也不清楚該去哪些公園玩了。一開始,小白就根據公園的風景給每個公園打了分。小新為了省事,每次遛狗的時候都會事先規定乙個範圍,小白只可以選擇第a個和...
Vijos1083 小白逛公園
description 小新經常陪小白去公園玩,也就是所謂的遛狗啦 在小新家附近有一條 公園路 路的一邊從南到北依次排著n 個公園,小白早就看花了眼,自己也不清楚該去哪些公園玩了。一開始,小白就根據公園的風景給每個公園打了分 小新為了省事,每次遛狗的時候都會事先規定乙個範圍,小白只可以選擇第a個和第...