样例过不了,感觉和题解差不多呢
查看原帖
样例过不了,感觉和题解差不多呢
564329
red_farmer楼主2021/10/10 13:43
#include<iostream>
#include<cstdio>
using namespace std;

long n, m, x, k, y;
long num;
int t[500005];

int lowbit(int s){
  return s&-s;
}
void update(int a, int b){
  for(int i=a;i<=n;i+=lowbit(i)){
    t[i]+=b;
  } 
}

int get_sum(int q){
  int sum2=0;
  for(int i=q;i;i-=lowbit(i)) sum2+=t[i];
  return sum2;
}


int main(){
  cin >> n >> m;
  t[0]=0;
  for(int i=1;i<=n;i++){
    int c;
    cin >> c; 
    t[i]=t[i-1]+c;
  }
  
  for(int i=n;i>=1;i--) t[i]-=t[lowbit(i)]; 
  
  for(int i=1; i<=m; i++){
    cin >> num;
    if(num==1){
      cin >> x >> k;
	  update(x, k);
	}
    if(num==2){
      cin >> x >> y;
	  cout << get_sum(y)-get_sum(x-1) << endl;
	}
  }
  return 0;
}
2021/10/10 13:43
加载中...