看看你第三行的代码
by _zuoqingyuan @ 2023-12-14 21:14:33
@[Twinkling](/user/932978) 我的查询和修改和你不一样,可能是写法的原因,你看看我的吧:
```cpp
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 5e5 + 10;
struct Tree {
int l, r;
int sum, lazy;
}tree[maxn << 2];
int n, m, a[maxn];
void push_up(int i) {
tree[i].sum = tree[i << 1].sum + tree[i << 1 | 1].sum;
}
void push_down(int i) {
if(tree[i].lazy) {
int k = tree[i].lazy; tree[i].lazy = 0;
tree[i << 1].sum += (tree[i << 1].r - tree[i << 1].l + 1) * k;
tree[i << 1 | 1].sum += (tree[i << 1 | 1].r - tree[i << 1 | 1].l + 1) * k;
tree[i << 1].lazy += k, tree[i << 1 | 1].lazy += k;
}
}
void build(int i, int L, int R) {
tree[i].l = L, tree[i].r = R;
if(L == R) {
tree[i].sum = a[L];
return;
}
int mid = L + R >> 1;
build(i << 1, L, mid), build(i << 1 | 1, mid + 1, R);
push_up(i);
}
void modify(int i, int L, int R, int k) {
if(L <= tree[i].l && tree[i].r <= R) {
tree[i].sum += (tree[i].r - tree[i].l + 1) * k;
tree[i].lazy += k;
return;
}
push_down(i);
if(tree[i << 1].r >= L) modify(i << 1, L, R, k);
if(tree[i << 1 | 1].l <= R) modify(i << 1 | 1, L, R, k);
push_up(i);
}
int query(int i, int L, int R) {
if(L <= tree[i].l && tree[i].r <= R) return tree[i].sum;
push_down(i);
int ret = 0;
if(tree[i << 1].r >= L) ret += query(i << 1, L, R);
if(tree[i << 1 | 1].l <= R) ret += query(i << 1 | 1, L, R);
return ret;
}
signed main() {
cin >> n >> m;
for(int i = 1; i <= n; i++) cin >> a[i];
build(1, 1, n);
while(m--) {
int opt; cin >> opt;
if(opt == 1) {
int x, y, k; cin >> x >> y >> k;
modify(1, x, y, k);
}
else {
int x, y; cin >> x >> y;
cout << query(1, x, y) << '\n';
}
}
return 0;
}
```
by _zhx @ 2023-12-14 21:15:39
@[zuoqingyuan](/user/731650) 然后呢,为什么有个蒟蒻不知道。
by _zhx @ 2023-12-14 21:20:20
```cpp
#define ing long long
```
是不是要写成
```cpp
#define int long long
```
by _zuoqingyuan @ 2023-12-14 21:21:22
@[_zhx](/user/784712) 我的意思是他的代码没问题,单纯有一个语句打错了
by _zuoqingyuan @ 2023-12-14 21:26:59
@[zuoqingyuan](/user/731650) @[_zhx](/user/784712)
谢谢!!!!!我查了两个晚上都没查出来,确实疏忽了,感谢帮忙
祝您AK IOI
by Twinkling @ 2023-12-14 21:35:42
[此贴结,警示:int不是ing](https://www.luogu.com.cn/record/139611516)
by Twinkling @ 2023-12-14 21:37:06