当前位置:   article > 正文

1535:数列操作

数列操作

  1. const int N=1e5+5;
  2. int n,m,t;
  3. int i,j,k;
  4. int c[N];
  5. void update(int pos,int val)
  6. {
  7. while(pos<=n){
  8. c[pos]+=val;
  9. pos+=lowbit(pos);
  10. }
  11. }
  12. int get_sum(int x)//第 1 个数到第 x 个数
  13. {
  14. int ans=0;
  15. while(x){
  16. ans+=c[x];
  17. x-=lowbit(x);
  18. }
  19. return ans;
  20. }
  21. int main()
  22. {
  23. //IOS;
  24. while(sdd(n,m)==2){
  25. for(i=1;i<=n;i++){
  26. int x;
  27. sd(x);
  28. update(i,x);
  29. }
  30. int tag;
  31. for(i=1;i<=m;i++){
  32. sd(tag);
  33. if(tag==0){
  34. int l,r;
  35. sdd(l,r);
  36. pd(get_sum(r)-get_sum(l-1));
  37. }
  38. else{
  39. int pos,val;
  40. sdd(pos,val);
  41. update(pos,val);
  42. }
  43. }
  44. }
  45. //PAUSE;
  46. }

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/573297
推荐阅读
相关标签
  

闽ICP备14008679号