hdu 1166 敌兵布阵 单点更新模板
来源:互联网 发布:信阳师范学院网络教学 编辑:程序博客网 时间:2024/05/01 15:05
#include <iostream>#include <queue>#include <string.h>#include <stdio.h> using namespace std;#define lson l, mid, rt << 1#define rson mid+1, r, rt << 1 | 1const int N = 50005;struct node{int l, r;int x;}tr[N*4];int n;void build( int l, int r, int rt ){if( l == r ){tr[rt].l = l;tr[rt].r = r;scanf("%d", &tr[rt].x);return;}tr[rt].l = l;tr[rt].r = r;int mid = ( l + r) >> 1;build( lson );build( rson );tr[rt].x = tr[rt<<1].x + tr[rt<<1|1].x;}int query( int l, int r, int rt ){if( tr[rt].l == l && tr[rt].r == r )return tr[rt].x;int mid = ( tr[rt].l + tr[rt].r ) >> 1;if( r <= mid )return query( l, r, rt << 1 );else if( l > mid )return query( l, r, rt << 1 | 1 );elsereturn ( query( l, mid, rt << 1 ) + query( mid+1, r, rt << 1 | 1) );}void update( int a, int b, int rt ){if( tr[rt].l == tr[rt].r && tr[rt].l == a ){tr[rt].x += b;return;}else{int mid = ( tr[rt].l + tr[rt].r ) >> 1;if( a <= mid )update( a, b, rt << 1);elseupdate( a, b, rt << 1 | 1);tr[rt].x = tr[rt<<1].x + tr[rt<<1|1].x;}}int main(){int cas = 1, tot;scanf("%d", &tot);while( tot-- ){scanf("%d", &n);build( 1, n, 1 );printf("Case %d:\n", cas++ );char op[10];int a, b;while( scanf("%s", op), strcmp( op, "End" )){scanf("%d%d", &a, &b);if( !strcmp( op, "Add" ) )update( a, b, 1 );else if( !strcmp( op, "Sub" ) )update( a, -b, 1 );else{int ans = query(a, b, 1);printf("%d\n", ans);}}}return 0;}
0 0
- hdu 1166 敌兵布阵 单点更新模板
- HDU - 1166 A - 敌兵布阵 线段树单点更新模板
- hdu 1166 敌兵布阵(单点更新)
- HDU 1166 敌兵布阵(单点更新)
- HDU-1166-敌兵布阵-单点更新
- hdu 1166 敌兵布阵(单点更新)
- 1166-敌兵布阵-单点更新
- 树状数组、线段树模板(一)——单点更新 + HDU 1166 敌兵布阵
- hdu 1166 敌兵布阵 (线段树、树状数组模板,单点更新)
- HDU 1166-敌兵布阵【树状数组&&线段树单点更新】【模板】
- HDU 1166 敌兵布阵 [线段树-单点更新]
- Hdu-1166 敌兵布阵【线段树(单点更新)】
- 线段树 hdu 1166 敌兵布阵 单点更新区间求和
- 线段树入门[单点更新] 敌兵布阵 HDU 1166
- hdu 1166 敌兵布阵(线段树,单点更新)
- hdu 1166 敌兵布阵(线段树-单点更新)
- hdu 1166 敌兵布阵 线段树(单点更新)
- hdu 1166 敌兵布阵 线段树 单点更新
- jvm 日志和参数的理解
- API开发第一篇:关于session的APP服务端API开发
- [Gym100016D] Group Stage
- java线程暂停与继续
- Qt核心剖析: moc
- hdu 1166 敌兵布阵 单点更新模板
- hdu 1555 How many days?
- 【BZOJ】【P1018】【SHOI2008】【堵塞的交通traffic】【题解】【线段树】
- Java线程(九):Condition-线程通信更高效的方式
- 100个熟词生义
- cmake编译简单模板形式
- BZOJ 3029 守卫者的挑战 期望DP
- 数组和指针
- Android开发环境搭建教程_eclipse篇