vijos1083 小白逛公園

2021-09-03 01:52:55 字數 1296 閱讀 1704

題目

題意:求區間最大連續子段和,有單點修改

s um

sumsu

m表示區間和,

l

ll表示包含左端點的最大連續子段和,

r

rr表示包含右端點的最大連續子段和,

a ll

allal

l表示整個區間的最大連續子段和

#include

using

namespace std;

const

int n=

500002

;#define mid ((l+r)>>1)

struct nodetr[n<<2]

;int n,m,x,y,op;

inline

chargc(

)inline

intrd()

inline

void

wri(

int a)

inline

void

wln(

int a)

node operator

+(node le,node ri);}

void

build

(int t,

int l,

int r)

;return;}

build

(t<<

1,l,mid)

;build

(t<<1|

1,mid+

1,r)

; tr[t]

=tr[t<<1]

+tr[t<<1|

1];}

node query

(int t,

int l,

int r,

int x,

int y)

void

update

(int t,

int l,

int r,

int x,

int v)

;return;}

if(x<=mid)

update

(t<<

1,l,mid,x,y)

;else

update

(t<<1|

1,mid+

1,r,x,y)

; tr[t]

=tr[t<<1]

+tr[t<<1|

1];}

intmain()

}

Vijos1083 小白逛公園

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

vijos 1083 小白逛公園

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

1756 Vijos1083 小白逛公園

題目鏈結 題目大意 區間最大子段和,多次詢問 題解 維護一些東西 lm從左端點往右能取到的最大值 rm從右節點往左能取到的最大值 ans儲存當前區間任取一段的最大值 上傳標記的時候比較麻煩,詳見 詢問返回節點,因為這樣才能保證查詢時資訊的合併不出問題 我的收穫 include include usi...