洛谷 2357 守墓人

2021-09-01 16:07:47 字數 1298 閱讀 7941

守墓人會有幾個操作:

1.將[l,r]這個區間所有的墓碑的風水值增加 k。

2.將主墓碑的風水值增加 k

3.將主墓碑的風水值減少 k

4.統計[l,r]這個區間所有的墓碑的風水值之和

5.求主墓碑的風水值

主墓為1線段樹,把主墓拎出來單獨算無~~(是真的啥都沒乾)~~

#include

#define maxn 200005

using

namespace std;

int val[maxn]

, n, f;

struct nodea[maxn <<2]

;void

build

(int cur,

int l,

int r)

int mid =

(l + r)

>>1;

build

(cur <<

1, l, mid)

;build

(cur <<1|

1, mid +

1, r)

; a[cur]

.key = a[cur <<1]

.key + a[cur <<1|

1].key;

}void

pushdown

(int cur)

void

update

(int cur,

int l,

int r,

int k)

pushdown

(cur)

;update

(cur <<

1, l, r, k)

;update

(cur <<1|

1, l, r, k)

; a[cur]

.key = a[cur <<1]

.key + a[cur <<1|

1].key;

}int

query

(int cur,

int l,

int r)

intmain()

if(opt ==2)

if(opt ==3)

if(opt ==4)

else

printf

("%d\n"

,query(1

, l, r));

}if(opt ==5)

printf

("%d\n"

, val[1]

);}return0;

}

洛谷P2357 守墓人

在乙個荒涼的墓地上 有乙個令人尊敬的守墓人,他看守的墓地從來 沒有被盜過,所以人們很放心的把自己的先人的墓 安頓在他那 守墓人能看好這片墓地是必然而不是偶然.因為.守墓人懂風水 0.0 他把墓地分為主要墓碑和次要墓碑,主要墓碑 只能有 1 個,守墓人把他記為 1 號,而次要墓碑有 n 1 個,守墓人...

洛谷 P2357 守墓人

在乙個荒涼的墓地上 有乙個令人尊敬的守墓人,他看守的墓地從來 沒有被盜過,所以人們很放心的把自己的先人的墓 安頓在他那 守墓人能看好這片墓地是必然而不是偶然.因為.守墓人懂風水 0.0 他把墓地分為主要墓碑和次要墓碑,主要墓碑 只能有 1 個,守墓人把他記為 1 號,而次要墓碑有 n 1 個,守墓人...

題解 洛谷P2357 守墓人

portal1 luogu 在乙個荒涼的墓地上有乙個令人尊敬的守墓人,他看守的墓地從來沒有被盜過,所以人們很放心的把自己的先人的墓安頓在他那守墓人能看好這片墓地是必然而不是偶然.因為.守墓人懂風水。他把墓地分為主要墓碑和次要墓碑,主要墓碑只能有 1 個,守墓人把他記為 1 號,而次要墓碑有 n 1 ...