【NOIP模板】 树状数组
2017-09-22 16:27
495 查看
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; char s[10]; int t[50010], a[50010], n, T; int lowbit(int x) { return x & (- x); } void add(int x, int pos) { while(pos <= n) { t[pos] += x; pos += lowbit(pos); } } int find(int x) { int ans = 0; while(x) { ans += t[x]; x -= lowbit(x); } return ans; } void init(int x) { printf("Case %d:\n", x); memset(t, 0, sizeof(t)); } int main() { scanf("%d", &T); for(int k = 1; k <= T; k ++) { init(k); scanf("%d", &n); for(int i = 1; i <= n; i ++) scanf("%d", &a[i]), add(a[i], i); int i, j; while(scanf("%s", s) && s[0] != 'E') { if(s[0] == 'A') { scanf("%d %d", &i, &j); add(j, i); } else if(s[0] == 'S') { scanf("%d %d", &i, &j); add(-j, i); } else { scanf("%d %d", &i, &j); printf("%d\n", find(j) - find(i - 1)); } } } return 0; }
相关文章推荐
- 树状数组模板 Tree Array
- 【模板】树状数组 01
- 洛谷 P3374【模板】树状数组 1
- 树状数组--模板
- 树状数组求逆序数(模板)
- hdu 2642二维树状数组 单点更新区间查询 模板题
- 敌兵布阵(树状数组模板题)
- 树状数组模板
- hdoj Stars 1541 (树状数组模板&&线段树)
- 洛谷 P3374 【模板】树状数组 1
- 【模板】逆序对(树状数组)
- 二维树状数组模板
- 【luogu3374】模板 树状数组 1
- 用树状数组解决"区间和"问题模板(1166)
- UESTC 838 —— 母仪天下(树状数组模板)
- 树状数组区间操作模板
- 康托展开模板(树状数组维护)O (n log n)
- 【模板】树状数组 洛谷P3374
- hdu 2642二维树状数组 单点更新区间查询 模板题
- 【模板】树状数组 单点修改,区间求和 (模板题:洛谷P3374树状数组1)