单点更新区间求和 hdu1166 地兵布阵
来源:互联网 发布:pmp网络课程 编辑:程序博客网 时间:2024/05/20 05:57
hdu1166 地兵布阵
题目大意: 有N个工兵营,每个工兵营开始有a个人,然后有一些操作。Add i j 第i个工兵营加j个人 Sub 第i个工兵营减j个人,Q i j 询问第i到第j个工兵营的总人数。
解题思路:O(-1)
#include <iostream>#include <cstdio>using namespace std;#define lz 2*u,l,mid#define rz 2*u+1,mid+1,rconst int maxn=55555;int sum[2*maxn], a[maxn];void build(int u, int l, int r){ sum[u]=0; if(l==r) { sum[u]=a[l]; return ; } int mid=(l+r)>>1; build(lz); build(rz); sum[u]=sum[2*u]+sum[2*u+1];}void Update(int u, int l, int r, int pos, int c){ if(l==r) { sum[u]+=c; return ; } int mid=(l+r)>>1; if(pos<=mid) Update(lz,pos,c); else Update(rz,pos,c); sum[u]=sum[2*u]+sum[2*u+1];}int Query(int u, int l, int r, int tl, int tr){ if(tl<=l&&r<=tr) return sum[u]; int mid=(l+r)>>1; if(tr<=mid) return Query(lz,tl,tr); else if(tl>mid) return Query(rz,tl,tr); else { int t1=Query(lz,tl,mid); int t2=Query(rz,mid+1,tr); return t1+t2; }}int main(){ int n, T, tcase=0; cin >> T; while(T--) { printf("Case %d:\n",++tcase); cin >> n; for(int i=1; i<=n; i++) scanf("%d",a+i); build(1,1,n); char op[10];; while(scanf("%s",op)) { if(op[0]=='E') break; else { int l, r; scanf("%d%d",&l,&r); if(op[0]=='Q') printf("%d\n",Query(1,1,n,l,r)); else { if(op[0]=='S') r*=-1; Update(1,1,n,l,r); } } } } return 0;}
0 0
- 单点更新区间求和 hdu1166 地兵布阵
- HDU1166 敌兵布阵 单点更新+区间求和
- hdu1166 敌兵布阵 线段树单点更新+区间求和
- hdu1166 敌兵布阵(线段树单点更新+区间求和)
- hdu1166单点更新,区间求和
- HDU1166 敌兵布阵(线段树单点更新,区间求和)(代码风格修正版)
- HDU1166 线段树区间求和,单点更新
- 【HDU1166】敌兵布阵-单点修改和区间求和
- hdu1166 树状数组模板:单点更新,区间求和(区间查询)
- 树状数组:HDU1166敌兵布阵 【单点更新,区间查询】
- hdu1166敌兵布阵(线段树---单点更新,区间求值)
- 【单点更新,区间查询,线段树】【HDU1166】【敌兵布阵】
- HDU1166 敌兵布阵(线段树 单点更新 区间查询)
- hdu1166 敌兵布阵 线段树 单点更新区间查询
- HDU1166 敌兵布阵(单点更新 区间查询)
- HDU1166:敌兵布阵(线段树单点更新,区间查询)
- hdu1166 敌兵布阵(单点更新)
- hdu1166--敌兵布阵(单点更新)
- apk 反编译失败
- Android学习第一天之LinearLayout浅析
- 程序员书单_sshi框架篇
- 循环赛日程表
- 保存dotNetCharting for WinForm 控件的生成的图表
- 单点更新区间求和 hdu1166 地兵布阵
- VTK6.2&6.3+VS2013+QT5编译配置
- Instruments的使用
- 字符串hash问题
- 黑马程序员——面试题总结
- UVa116
- CloudStack 故障排查汇总-不定期更新
- LintCode : 搜索旋转排序数组
- Java学习——String变量中的双胞胎