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

    思路:

    线段树单点更新模板。

    实现:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int N = 50005;
     4 int a[N], tree[N * 4], n;
     5 
     6 void build(int num, int l, int r)
     7 {
     8     if (l == r) { tree[num] = a[l]; return; }
     9     int m = l + r >> 1;
    10     build(num * 2, l, m);
    11     build(num * 2 + 1, m + 1, r);
    12     tree[num] = tree[num * 2] + tree[num * 2 + 1];
    13 }
    14 
    15 void update(int num, int l, int r, int x, int dx)
    16 {
    17     if (l == r) { tree[num] += dx; return; }
    18     int m = l + r >> 1;
    19     if (x <= m) update(num * 2, l, m, x, dx);
    20     else update(num * 2 + 1, m + 1, r, x, dx);
    21     tree[num] = tree[num * 2] + tree[num * 2 + 1];
    22 }
    23 
    24 int query(int num, int l, int r, int x, int y)
    25 {
    26     if (x <= l && y >= r) return tree[num];
    27     int m = l + r >> 1, ans = 0;
    28     if (x <= m) ans += query(num * 2, l, m, x, y);
    29     if (y >= m + 1) ans += query(num * 2 + 1, m + 1, r, x, y);
    30     return ans;
    31 }
    32 
    33 int main()
    34 {
    35     ios::sync_with_stdio(false);
    36     int T, Kase = 1;
    37     cin >> T;
    38     while (T--)
    39     {
    40         cout << "Case " << Kase++ << ":" << endl;
    41         cin >> n;
    42         for (int i = 1; i <= n; i++) cin >> a[i];
    43         build(1, 1, n);
    44         string tmp; int a, b;
    45         while (cin >> tmp, tmp[0] != 'E')
    46         {
    47             if (tmp[0] == 'Q') { cin >> a >> b; cout << query(1, 1, n, a, b) << endl; }
    48             else if (tmp[0] == 'A') { cin >> a >> b; update(1, 1, n, a, b); }
    49             else { cin >> a >> b; update(1, 1, n, a, -b); } 
    50         }
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    MySQL 管理
    CSS font-style 属性
    HTML DOM Input Search value 属性
    tan (Numerics) – C 中文开发手册
    Java8中的Java.util.StringJoiner
    ASP ShortPath 属性
    java.lang.NoClassDefFoundError的解决方案
    HTML DOM td , th 对象
    HTML colgroup char 属性
    Java 之 递归&递归操作文件
  • 原文地址:https://www.cnblogs.com/wangyiming/p/8446725.html
Copyright © 2011-2022 走看看