树状数组入门 之 hdu 1166
2014-04-07 17:12
197 查看
第一道树状数组。。。入门。。。线段树做法:代码见这里
// [4/7/2014 Sjm] #include <iostream> #include <cstdio> #include <cstdlib> #include <string> using namespace std; const int MAX_N = 50000; int bit[MAX_N + 1], n; int mySum(int i) { int sum = 0; while (i>0){ sum += bit[i]; i -= (i&(-i)); } return sum; } void myAdd(int i, int x) { while (i<=n) { bit[i] += x; i += (i&(-i)); } } int main() { //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int T; scanf("%d", &T); for (int i = 1; i <= T; i++) { memset(bit, 0, sizeof(bit)); printf("Case %d:\n", i); scanf("%d", &n); for (int j = 1; j <= n; j++) { int x; scanf("%d", &x); myAdd(j, x); } string str; while (cin>>str && ('E' != str[0])) { int a, b; scanf("%d %d", &a, &b); if ('Q' == str[0]) printf("%d\n", mySum(b) - mySum(a-1)); else { if ('A' == str[0]) myAdd(a, b); else myAdd(a, -b); } } } return 0; }
相关文章推荐
- hdu 1166:敌兵布阵(树状数组 / 线段树,入门练习题)
- [HDU 1166]敌兵布阵[树状数组][入门]
- hdu1166之树状数组入门
- hdu 1166 线段树与树状数组入门 单点更新
- hdu 1166 树状数组 线段树入门
- hdu 1166 树状数组 线段树入门
- hdu 1166 树状数组 入门题
- hdu 1166 敌兵布阵【树状数组入门】
- HDU 1166 敌兵布阵 (树状数组入门)
- hdu 1166 敌兵布阵【树状数组入门】
- hdu 1166 敌兵布阵【入门线段树 & 树状数组】
- HDU-1166(树状数组入门)
- 树状数组入门 之 hdu 1166
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵 (树状数组)
- HDU 1166 敌兵布阵 树状数组 区间求和
- hdu 1166 敌兵布阵(树状数组 | 线段树)
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵 (树状数组 || 线段树)
- hdu_2795_线段树入门_线段树由树状数组转坑原本数组模拟