hdu 1166 敌兵布阵
来源:互联网 发布:哪个贷款软件最靠谱 编辑:程序博客网 时间:2024/05/26 22:57
AC代码:
#include <iostream>#include <cstdio>using namespace std;const int N = 50005;struct node{ int l,r,sum;}tree[N<<2];int a[N];void build(int m,int l,int r){ tree[m].l = l; tree[m].r = r; if(l == r){ tree[m].sum = a[l]; return ; } int mid = (l+r)>>1; build(m<<1,l,mid); build((m<<1)|1,mid+1,r); tree[m].sum = tree[m<<1].sum+tree[(m<<1)|1].sum;}void update(int m,int x,int val){ if(tree[m].l == x && tree[m].r == x){ tree[m].sum += val; return ; } int mid = (tree[m].l+tree[m].r)>>1; if(x <= mid) update(m<<1,x,val); else update((m<<1)|1,x,val); tree[m].sum = tree[m<<1].sum+tree[(m<<1)|1].sum;}int query(int m,int l,int r){ if(tree[m].l == l && tree[m].r == r) return tree[m].sum; int mid = (tree[m].l+tree[m].r)>>1; if(r <= mid) return query(m<<1,l,r); if(l > mid) return query((m<<1)|1,l,r); return query(m<<1,l,mid)+query((m<<1)|1,mid+1,r);}int main(){ int T,t = 1; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); for(int i = 1; i <= n; i++) scanf("%d",&a[i]); build(1,1,n); printf("Case %d:\n",t++); char op[10]; int x,y; while(1){ scanf("%s",op); if(op[0] == 'Q'){ scanf("%d%d",&x,&y); printf("%d\n",query(1,x,y)); } else if(op[0] == 'A'){ scanf("%d%d",&x,&y); update(1,x,y); } else if(op[0] == 'S'){ scanf("%d%d",&x,&y); update(1,x,-y); } else if(op[0] == 'E') break; } } return 0;}
0 0
- 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 1166 敌兵布阵
- hdu 1166 敌兵布阵
- leetcode之 Remove Duplicates from Sorted Array
- java nio对OP_WRITE的处理解决网速慢的连接
- Android Material Design之Toolbar与Palette实践
- leetcode215---Kth Largest Element in an Array(第k大元素)
- 序列化与编辑器
- hdu 1166 敌兵布阵
- 数组循环移位算法
- javascript性能优化——懒加载提升代码效率
- 敏捷开发框架Srum实例
- hdu 1754 I Hate It
- leetcode之plus One
- HDU4857 逃生【逆向拓扑排序】【优先队列】
- String 类常用方法(1)
- POJ 3468 A Simple Problem with Integers