第一张图把我吓到了/kk
这道题就是我们最最喜爱(恶心)的线段树模板。
共5种操作:
1. 格式:1 l r k 表示区间[l,r]加上k;
2. 格式:2 val 表示主墓碑风水值加上val;
3. 格式:3 val 表示主墓碑风水值减少val;
4. 格式:4 l r 表示求区间[l,r]风水值之和;
5. 格式:5 表示主墓碑的风水值。
az,这线段树不用说了吧。
直接上代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=2e5+1;
struct Node{
ll Sum;
ll Tag;
};
Node tree[N<<2];
ll n,m;
#define ls value<<1
#define rs value<<1|1
inline void in(ll &x){
x=0;
ll f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
x*=