洛谷 P2357 守墓人

2022-03-20 05:30:42 字數 2271 閱讀 3643

在乙個荒涼的墓地上

有乙個令人尊敬的守墓人, 他看守的墓地從來

沒有被盜過, 所以人們很放心的把自己的先人的墓

安頓在他那

守墓人能看好這片墓地是必然而不是偶然.....

因為....守墓人懂風水 0.0

他把墓地分為主要墓碑和次要墓碑, 主要墓碑

只能有 1 個, 守墓人把他記為 1 號, 而次要墓碑有

n-1 個,守墓人將之編號為 2,3...n,所以構成了乙個有 n 個墓碑的墓地。

而每個墓碑有乙個初始的風水值,這些風水值決定了墓地的風水的好壞,所以守墓人

需要經常來查詢這些墓碑。

善於運用風水的守墓人,通過一次次逆天改命,使得自己擁有了無限壽命,沒人知道

他活了多久。

這天,你幸運的拜訪到了他,他要求你和他共同見證接下來幾年他的戰果,但不過他

每次統計風水值之和都需要你來幫他計算,算錯了他會要你命 qaq

風水也不是不可變,除非遭遇特殊情況,已知在接下來的 2147483647 年裡,會有 n 次

災難,守墓人會有幾個操作:

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

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

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

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

5.求主墓碑的風水值

上面也說了,很多人會把先人的墓安居在這裡,而且守墓人活了很多世紀→_→,墓碑

的數量會多的你不敢相信= =

守墓人和善的邀請你幫他完成這些操作,要不然哪天你的旅館**了,天上下刀子.....

為了活命,還是幫他吧

第一行,兩個正整數 n,f 表示共有 n 塊墓碑,並且在接下來的

2147483647 年裡,會有 f 次世界末日

第二行,n 個正整數,表示第 i 塊墓碑的風水值

接下來 f 行,每行都會有乙個針對世界末日的解決方案,如題所述,標記同題

輸出會有若干行,對 4 和 5 的提問做出回答

輸入 #1複製

輸出 #1複製

20%的資料滿足:1≤n≤100

50%的資料滿足:1≤n≤6000

100%的資料滿足:1≤n,f≤2*10^5

怎麼說呢?這是我做過的唯一一道題目背景出的比我還%%#¥的人。

(真是一道好題)

線段樹模板題。竟然是藍?

我曾一度懷疑查1號節點的值該怎麼搞。後來直接把x,y置成了1.

完美解決。

記得開longlong

**:

#include#define int long long

#define lson pos<<1

#define rson pos<<1|1

using namespace std;

const int maxn=2*1e5+1;

int n,f;

int a[maxn];

int tree[maxn<<2],lazy[maxn<<2];

void build(int pos,int l,int r)

build(lson,l,mid);

build(rson,mid+1,r);

tree[pos]=tree[lson]+tree[rson];

}void mark(int pos,int l,int r,int k)

void pushdown(int pos,int l,int r)

void update(int pos,int l,int r,int x,int y,int k)

pushdown(pos,l,r);

if(x<=mid)

update(lson,l,mid,x,y,k);

if(y>mid)

update(rson,mid+1,r,x,y,k);

tree[pos]=tree[lson]+tree[rson];

}int query(int pos,int l,int r,int x,int y)

signed main()

else if(k==2)

else if(k==3)

else if(k==4)

else if(k==5)

printf("%lld\n",query(1,1,n,1,1));

}return 0;

}

洛谷P2357 守墓人

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

題解 洛谷P2357 守墓人

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

洛谷P2357 守墓人 線段樹

如果普通暴力做 肯定過不了 那麼我們就要考慮 更高效的 資料結構 比如分塊 線段樹 樹狀陣列等 然後就可以用線段樹過了 要加laz ylazy lazy 標記 比分塊快200ms 200ms 200m s至於主墓的風水和 題目說它是編號1 11 那其實就是區間 1,1 1,1 1,1 的風水和了 就...