• [模板]洛谷T3374 树状数组 模板1


     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<ctime>
     6 #include<cstdlib>
     7 
     8 #include<algorithm>
     9 #include<string>
    10 #include<stack>
    11 #include<queue>
    12 #include<vector>
    13 
    14 using namespace std;
    15 
    16 void add(int,int);
    17 int pre(int);
    18 
    19 int c[500010];
    20 
    21 int i,n,m;
    22 
    23 int t;
    24 
    25 int k;
    26 
    27 int p,x;
    28 int a,b;
    29 
    30 int main(){
    31     scanf("%d%d",&n,&m);
    32     
    33     for(i=1;i<=n;i++){
    34         scanf("%d",&t);
    35         add(i,t);
    36     }
    37     
    38     for(i=1;i<=m;i++){
    39         scanf("%d",&k);
    40         if(k==1){
    41             scanf("%d%d",&p,&x);
    42             add(p,x);
    43         }
    44         else{
    45             scanf("%d%d",&a,&b);
    46             printf("%d
    ",pre(b)-pre(a-1));
    47         }
    48     }
    49     
    50     return 0;
    51 }
    52 
    53 void add(int p,int x){
    54     while(p<=n){
    55         c[p]+=x;
    56         p+=p&-p;
    57     }
    58 }
    59 
    60 int pre(int p){
    61     int sum=0;
    62     while(p>=1){
    63         sum+=c[p];
    64         p-=p&-p;
    65     }
    66     return sum;
    67 }
  • 相关阅读:
    几种常用类的学习
    类,接口
    方法
    数组使用
    条件控制与循环
    类型转换,运算符
    Java基本类型
    SVN基本使用
    【转】MySQL的btree索引和hash索引的区别
    常用命令(java、linux)
  • 原文地址:https://www.cnblogs.com/running-coder-wfh/p/7067568.html
Copyright © 2020-2023  润新知