• LOJ P10116 清点人数 题解


    每日一题 day13 打卡

    Analysis

    用简单的树状数组维护单点修改和查询就行了

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define maxn 500000+10
     6 using namespace std;
     7 inline int read() 
     8 {
     9     int x=0;
    10     bool f=1;
    11     char c=getchar();
    12     for(; !isdigit(c); c=getchar()) if(c=='-') f=0;
    13     for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';
    14     if(f) return x;
    15     return 0-x;
    16 }
    17 inline void write(int x)
    18 {
    19     if(x<0){putchar('-');x=-x;}
    20     if(x>9) write(x/10);
    21     putchar(x%10+'0');
    22 }
    23 int n,k;
    24 int tree[maxn];
    25 inline int lowbit(int num){return num&-num;}
    26 inline void build(int s,int num)
    27 {
    28     for(int i=s;i<=n;i+=lowbit(i)) tree[i]+=num;
    29 }
    30 inline int ask(int s)
    31 {
    32     int ans=0;
    33     for(int i=s;i>=1;i-=lowbit(i)) ans+=tree[i];
    34     return ans;
    35 }
    36 int main()
    37 {
    38     n=read();k=read();
    39     for(int i=1;i<=k;i++)
    40     {
    41         char in;
    42         scanf("%s",&in);
    43         if(in=='A')
    44         {
    45             int x=read();
    46             int res=ask(x);
    47             write(res);
    48             printf("
    ");
    49         }
    50         if(in=='B')
    51         {
    52             int x=read(),y=read();
    53             build(x,y);
    54         }
    55         if(in=='C')
    56         {
    57             int x=read(),y=read();
    58             build(x,-y);
    59         }
    60     }
    61     return 0;
    62 }

    请各位大佬斧正(反正我不认识斧正是什么意思)

  • 相关阅读:
    克隆节点及添加属性节点
    元素属性的添加删除(原生js)
    清浮动方法
    css样式获取及兼容性(原生js)
    js基础---数据类型转换
    js基础---数字日期及运算
    js基础---object对象
    input询问键盘输入超时自动跳过选择默认值
    xpath定位
    selenium报错问题解决方法
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11530826.html
Copyright © 2020-2023  润新知