2 条题解
-
0
using namespace std; struct Bitree{ int tree[500050],n; int lowbits(int x){ return x&-x; } void init(int size){ n=size; for(int i=0;i<=n;i++) tree[i]=0; } void add(int pos,int val){ while(pos<=n){ tree[pos]+=val; pos+=lowbits(pos); } } int query(int pos){ int ans=0; while(pos>0){ ans+=tree[pos]; pos-=lowbits(pos); } return ans; } int query(int l,int r){ return query(r) - query(l - 1); } }; Bitree bitree; int main(){ int n,m; cin>>n>>m; bitree.init(n); for(int i=1;i<=n;i++){ int val; cin>>val; bitree.add(i,val); } for(int i=1;i<=m;i++){ int op,x,y; cin>>op>>x>>y; if(op==1){ bitree.add(x,y); }else{ cout<<bitree.query(x,y)<<'\n'; } } return 0; }`
信息
- ID
- 2426
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 15
- 已通过
- 11
- 上传者