• 【luogu P3374 树状数组1】 模板


    题目链接:https://www.luogu.org/problemnew/show/P3374

    留个坑,以后补上BIT的讲解,先留下板子复习用

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 int n,m;
     6 int tree[500070],a[500070];
     7 int lowbit(int x)
     8 {
     9     return x&-x;
    10 }
    11 void add(int k,int num)//给k位置的数值加num
    12 {
    13     while(k<=n)
    14     {
    15         tree[k]+=num;
    16         k+=lowbit(k);
    17     }
    18 }
    19 int sum(int k)//前缀和
    20 {
    21     int s=0;
    22     while(k)
    23     {
    24         s+=tree[k];
    25         k-=lowbit(k);
    26     }
    27     return s;
    28 }
    29 int main()
    30 {
    31     scanf("%d%d",&n,&m);
    32     for(int i=1;i<=n;i++)
    33     {
    34         scanf("%d",&a[i]);
    35         add(i,a[i]);
    36     }
    37     for(int i=1;i<=m;i++)
    38     {
    39         int c;scanf("%d",&c);
    40         if(c == 1)
    41         {
    42             int x,k;
    43             scanf("%d%d",&x,&k);
    44             add(x,k);
    45         }
    46         else
    47         {
    48             int x,y;scanf("%d%d",&x,&y);
    49             printf("%d
    ",sum(y)-sum(x-1));
    50         }
    51     }
    52     return 0;
    53 }

    隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

    隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

  • 相关阅读:
    BZOJ3391: [Usaco2004 Dec]Tree Cutting网络破坏
    python总结二
    python总结一
    评论详解
    C++入门篇十三
    C++入门篇十二
    C++入门篇十一
    C++入门篇十
    C++入门篇九
    c++入门篇八
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/8552009.html
Copyright © 2020-2023  润新知