守墓人會有幾個操作:
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 ...