zoukankan      html  css  js  c++  java
  • 树状数组Hdu1166

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <string>
    #include <iostream>
    using namespace std;
    int c[222222];
    int n;
    int lowbit(int x)
    {
        return x&(-x);
    }
    
    int sum(int n)
    {
        int sum=0;
        while(n>0){
            sum+=c[n];
            n-=lowbit(n);
        }
        return sum;
    }
    
    void change(int k,int add)
    {
        while(k<=n){
            c[k]+=add;
            k+=lowbit(k);
        }
    }
    int main()
    {
        int t;
        char str[100];int pos,add,l,r;
        scanf("%d",&t);
        for(int i=1;i<=t;i++){
            memset(c,0,sizeof(c));
            scanf("%d",&n);
            for(int i=1;i<=n;i++){
                int ret;scanf("%d",&ret);
                change(i,ret);
            }
            printf("Case %d:
    ",i);
            for(;;){
                scanf("%s",str);
                if(strcmp(str,"End")==0)
                    break;
                if(strcmp(str,"Add")==0){
                    scanf("%d%d",&pos,&add);
                    change(pos,add);
                }
                if(strcmp(str,"Query")==0){
                    scanf("%d%d",&l,&r);
                    printf("%d
    ",sum(r)-sum(l-1));
                }
                if(strcmp(str,"Sub")==0){
                    cin>>pos>>add;
                    change(pos,-add);
                }
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    Git
    vue
    vue
    echarts,dojo和兼容问题
    js数组对象以某一对象排序
    滚动条与图片移动
    vue
    vue
    vue页面组件化-父子组件传值
    phpquery笔记
  • 原文地址:https://www.cnblogs.com/yigexigua/p/3773715.html
Copyright © 2011-2022 走看看