zoukankan      html  css  js  c++  java
  • 敌兵布阵

    hdoj 1166

    题目大意:

    解决:树状数组简单题,不解释

    #include <iostream> 
    #include <cstdio>
    #include <cstring>
    using namespace std;
    #define L(x) (x<<1)
    #define R(x) (x<<1|1)
    #define M(x,y) ((x+y)>>1)
    int n;
    int c[50005];
    int lowbit(int x)
    {
        return x&(-x);
    }
    void updata(int p,int inc)
    {
        for(int i=p;i<=n;i+=lowbit(i))
             c[i]+=inc;
         
    }
    int getsum(int p)
    {
        int sum=0;
        for(int i=p;i>=1;i-=lowbit(i))
        sum+=c[i];
        return sum;
    }
    
    int main()
    {
        int T,num,a,b;
        scanf("%d",&T);
        for(int t=1;t<=T;t++)
        {
            memset(c,0,sizeof(c));
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&num);
                updata(i,num);
            }
            char cmd[10];
            printf("Case %d:\n",t);
            while(scanf("%s",cmd),cmd[0]!='E')
            {
                if(cmd[0]=='A'){scanf("%d%d",&a,&b); updata(a,b);}
                else if(cmd[0]=='S'){scanf("%d%d",&a,&b); updata(a,-b);}
                else 
                {
                    scanf("%d%d",&a,&b);
                    printf("%d\n",getsum(b)-getsum(a-1));
                }
            }
        
        }
        system("pause");
        return 0;
    }
    

  • 相关阅读:
    初识jQuery(2)
    初识jQuery(1)
    document和javaScript内置对象
    location
    history
    window对象
    注释、语法约定、函数和作用域
    运算符和typeof
    string
    数据恢复
  • 原文地址:https://www.cnblogs.com/hpustudent/p/2179147.html
Copyright © 2011-2022 走看看