zoukankan      html  css  js  c++  java
  • TTTTTTTTTTTTT LA 2191 树状数组 稍修改

    题意:给出n个数字,操作有修改(S)和输出区间和(M)。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <map>
    #include <algorithm>
    #include <set>
    using namespace std;
    typedef long long ll;
    typedef unsigned long long Ull;
    #define MM(a,b) memset(a,b,sizeof(a));
    const double eps = 1e-10;
    const int inf = 0x3f3f3f3f;
    const double pi=acos(-1);
    const int maxn=200000+5;
    
    int data[maxn],n,cnt=0;
    char a[5];
    
    int lowbit(int i)
    {
        return i&(-i);
    }
    
    int sum(int i)
    {
        int ret=0;
        while(i>0)
        {
            ret+=data[i];
            i-=lowbit(i);
        }
        return ret;
    }
    
    void update(int i,int j)
    {
        while(i<=n)
        {
            data[i]+=j;
            i+=lowbit(i);
        }
    }
    
    int main()
    {
        while(~scanf("%d",&n)&&n)
        {
            MM(data,0);
            for(int i=1;i<=n;i++)
                {
                    int u;
                    scanf("%d",&u);
                    update(i,u);
                }
            if(cnt>=1) printf("
    ");
            printf("Case %d:
    ",++cnt);
            while(~scanf("%s",a))
            {
                if(a[0]=='E') break;
                if(a[0]=='M')
                {
                    int l,r;
                    scanf("%d %d",&l,&r);
                    printf("%d
    ",sum(r)-sum(l-1));
                }
                else
                {
                    int i,j;
                    scanf("%d %d",&i,&j);
                    int k=sum(i)-sum(i-1);
                    update(i,j-k);
                }
            }
        }
        return 0;
    }
    

      分析:BIT模版题,,就是单点更新要转换成区间更新(因为BIT的每个节点都是对应区间,而不是单独

    一个节点),输入输出格式本来弄错了,,题目说的是在两个case之间输出一个空格

  • 相关阅读:
    有关android UI 线程
    lang3日期工具类底层源码解析
    JSON业务模型拆解技巧
    math3底层源码解决多元方程组
    关于日期解析Scala语言
    maven仓库支持cdh版本配置
    kudu数据库个人简单的总结
    json数据入库kafka
    json数据写入hbase
    一只鸟的故事
  • 原文地址:https://www.cnblogs.com/smilesundream/p/5414923.html
Copyright © 2011-2022 走看看