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

    似乎当初就是学到这里然后自己就去乱搞了?然后就弃坑了?想想挺难受的其实

    树状数组板子题。初始化wa了一发

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cstdlib>
     5 #include<algorithm>
     6 #include<cmath>
     7 #include<vector>
     8 using namespace std;
     9 #define mem(a,b) memset(a,b,sizeof(a))
    10 #define ll long long
    11 #define inf 1000000000
    12 #define maxn 40000
    13 #define eps 1e-12
    14 #define mod 1000000007
    15 inline int read()
    16 {
    17     int x=0,f=1;char ch=getchar();
    18     while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}
    19     while(ch>='0'&&ch<='9') {x=10*x+ch-'0';ch=getchar();}
    20     return x*f;
    21 }
    22 int a[50005],n;
    23 char s[20];
    24 int lowbit(int i)
    25 {
    26     return i&(-i);
    27 }
    28 void update(int i,int peo)
    29 {
    30     while(i<=n)
    31     {
    32         a[i]+=peo;i+=lowbit(i);
    33     }
    34 }
    35 int sum(int i)
    36 {
    37     int sum=0;
    38     while(i>0)
    39     {
    40         sum+=a[i];
    41         i-=lowbit(i);
    42     }
    43     return sum;
    44 }
    45 int main()
    46 {
    47     int T;
    48     T=read();
    49     int num=1,peo;
    50     while(T--)
    51     {
    52         n=read();
    53         mem(a,0);
    54         for(int i=1;i<=n;++i)  peo=read(),update(i,peo);
    55         printf("Case %d:
    ",num++);
    56         while(scanf("%s",s))
    57         {
    58             if(s[0]=='E') break;
    59             int x,y;
    60             x=read();y=read();
    61             if(s[0]=='Q') printf("%d
    ",sum(y)-sum(x-1));
    62             else if(s[0]=='A') update(x,y);
    63             else update(x,-y);
    64         }
    65     }
    66     return 0;
    67 }
  • 相关阅读:
    linux C/C++编程之库-动态库,静态库创建及使用
    类linux 系统iptables 系统初始化配置
    OS error set
    OpenWrt修改
    OpenWrt backfire trunk源码下载及编译
    OpenWrt compiles
    OpenWrt 学习网址
    nginx编译配置
    cocos2d-x中的坐标系
    SGU 231 Prime Sum 求&lt;=n内有多少对素数(a,b)使得a+b也为素数 规律题
  • 原文地址:https://www.cnblogs.com/TYH-TYH/p/8903854.html
Copyright © 2011-2022 走看看