• HDU 1166 敌兵布阵 树状数组


    题目链接:

    hdu:http://acm.hdu.edu.cn/showproblem.php?pid=1166

    题意:

    单点更新,成段查询。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 typedef long long LL;
     8 
     9 const int maxn = 5e4+10;
    10 
    11 int sum[maxn];
    12 int n;
    13 
    14 void init() {
    15     memset(sum, 0, sizeof(sum));
    16 }
    17 
    18 void add(int p, int v) {
    19     while (p < maxn) {
    20         sum[p] += v;
    21         p += p&-p;
    22     }
    23 }
    24 
    25 int get_sum(int p) {
    26     int ret = 0;
    27     while (p > 0) {
    28         ret += sum[p];
    29         p -= p&-p;
    30     }
    31     return ret;
    32 }
    33 
    34 int main() {
    35     int T,kase=0;
    36     scanf("%d", &T);
    37     while (T--) {
    38         init();
    39         scanf("%d", &n);
    40         for (int i = 1; i <= n; i++) {
    41             int x;
    42             scanf("%d", &x);
    43             add(i, x);
    44         }
    45         printf("Case %d:
    ", ++kase);
    46         char cmd[11];
    47         while (scanf("%s", cmd) == 1&&cmd[0]!='E') {
    48             if (cmd[0] == 'Q') {
    49                 int l, r;
    50                 scanf("%d%d", &l, &r);
    51                 printf("%d
    ", get_sum(r) - get_sum(l - 1));
    52             }
    53             else if (cmd[0] == 'A') {
    54                 int p, v;
    55                 scanf("%d%d", &p, &v);
    56                 add(p, v);
    57             }
    58             else if (cmd[0] == 'S') {
    59                 int p, v;
    60                 scanf("%d%d", &p, &v);
    61                 add(p, -v);
    62             }
    63         }
    64     }
    65     return 0;
    66 }
  • 相关阅读:
    [Scoi2010]游戏
    HDU3415(单调队列)
    POJ1221(整数划分)
    POJ1050(dp)
    POJ2479(dp)
    HDU1864(背包)
    HDU1175(dfs)
    STL_string.vector中find到的iterator的序号
    Qt532.数值转为16进制(并填充)
    异常处理.VC++
  • 原文地址:https://www.cnblogs.com/fenice/p/5425989.html
Copyright © 2020-2023  润新知