• Wikioi 1080一维树状数组


    半个月时间最终把那些杂七杂八的学完了,尽管学完也,也仅仅是有了个模板,自己手敲还是不太行。所以如今開始要疯狂刷题了!

    。!!!发火

    这题裸的树状数组。曾经写那道《敌兵布阵》的时候写过,所以写得还挺快的吧。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #include <deque>
    #include <vector>
    #include <queue>
    #include <string>
    #include <cstring>
    #include <map>
    #include <stack>
    #include <set>
    #define PI acos(-1.0)
    #define mem(a,b) memset(a,b,sizeof(a))
    #define sca(a) scanf("%d",&a)
    #define sc(a,b) scanf("%d%d",&a,&b)
    #define pri(a) printf("%d
    ",a)
    #define lson i<<1,l,mid
    #define rson i<<1|1,mid+1,r
    #define MM 100004
    #define MN 1008
    #define INF 2000000000
    #define eps 1e-8
    using namespace std;
    typedef long long ll;
    typedef unsigned long long ULL;
    int n,c[MM];
    void update(int x,int num)
    {
        for(int i=x;i<=n;i+=i&(-i))
            c[i]+=num;
    }
    int sum(int x)
    {
        int i,ans=0;
        for(i=x;i>=1;i-=i&(-i))
            ans+=c[i];
        return ans;
    }
    int main()
    {
        int m,i,a,k,p,q;
        sca(n);
        for(i=1;i<=n;i++)
        {
            sca(a);
            update(i,a);
        }
        sca(m);
        for(i=0;i<m;i++)
        {
            scanf("%d%d%d",&k,&p,&q);
            if(k==1) update(p,q);
            else printf("%d
    ",sum(q)-sum(p-1));
        }
        return 0;
    }
    


  • 相关阅读:
    思考问题的方式
    领域模型驱动设计读书笔记
    Oracle树形表和递归查询
    java中List , Set , Array相互转换
    JAVA两个数组间元素的比较(找出相同或者不同元素)
    java中的过滤器写法
    打印功能--调整表头
    @WebFilter注解
    深入理解JVM-内存模型(jmm)和GC
    vue生命周期函数
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5232679.html
Copyright © 2020-2023  润新知