社区讨论
树状数组板子题求调
题目总版参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mhksv3zn
- 此快照首次捕获于
- 2025/11/05 00:45 4 个月前
- 此快照最后确认于
- 2025/11/08 07:46 3 个月前
70pts
后三个点错
CPP#include<bits/stdc++.h>
//#include<bits/extc++.h>
#define int long long
#define cen cout << endl
#define c1 cout << 1 << " "
#define cs cout << " "
using namespace std;
//using namespace __gnu_pbds;
void f(){
}
int n,m;
struct BIT{
int ar[500009];
int lowbit(int x){return x&-x;}
void add1(int x,int val){for(int i=x;i<=n;i+=lowbit(i)){ar[i]+=val;}}
void add2(int l,int r,int val){add1(l,val);add1(r+1,-val);}
int query2(int x,int ans=0){for(int i=x;i;i-=lowbit(i)){ans+=ar[i];}return ans;}
int query1(int l,int r){return query2(r)-query2(l-1);}
};
int xx[500009];
signed main(){
BIT t;
cin >> n >> m;
for(int i=1;i<=n;i++){
cin >> xx[i];
t.add2(i,i,xx[i]);
}
for(int i=1;i<=m;i++){
int op,x,y,k;
cin >> op;
if(op==1){
cin >> x >> y >> k;
t.add2(x,y,k);
}
else{
cin >> x;
cout << t.query2(x);
cen;
}
}
return 0;
}
宣贯
回复
共 5 条回复,欢迎继续交流。
正在加载回复...