HDU 1166 敌兵布阵(线段树单点更新)
来源:互联网 发布:域名为什么会被墙 编辑:程序博客网 时间:2024/06/05 08:34
#include<iostream>using namespace std;const int maxn=200000+5;int n,a[maxn/4];struct Intervaltree{ int val[maxn]; void clear() {memset(val,0,sizeof(val));} void build(int o,int L,int R) { if(L==R){ val[o]=a[L]; return ; } build(o*2+1,L,(L+R)/2); build(o*2+2,(L+R)/2+1,R); val[o]=val[o*2+1]+val[o*2+2]; } void update(int o,int p,int L,int R,int v) { if(L==R){ val[o]+=v; return ; } int mid=(L+R)/2; if(p<=mid) update(o*2+1,p,L,mid,v); else update(o*2+2,p,mid+1,R,v); val[o]=val[o*2+1]+val[o*2+2]; } int query(int o,int l,int r,int L,int R) { int v=0; if(L<=l&&R>=r) return val[o]; int mid=(l+r)/2; if(R<=mid) v+=query(o*2+1,l,mid,L,R); else if(L>mid) v+=query(o*2+2,mid+1,r,L,R); else v+=query(o*2+1,l,mid,L,R)+query(o*2+2,mid+1,r,L,R); return v; }};Intervaltree Interval;int main(){ int t; scanf("%d",&t); for(int i=1;i<=t;i++) { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); Interval.clear(); Interval.build(0,1,n); char cmd[10]; printf("Case %d:\n",i); while(scanf("%s",cmd)&&cmd[0]!='E') { int a,b; scanf("%d%d",&a,&b); if(cmd[0]=='Q'){ printf("%d\n",Interval.query(0,1,n,a,b)); } else if(cmd[0]=='A'){ Interval.update(0,a,1,n,b); } else{ Interval.update(0,a,1,n,-b); } } } return 0;}
0 0
- HDU 1166 敌兵布阵 [线段树-单点更新]
- Hdu-1166 敌兵布阵【线段树(单点更新)】
- 线段树 hdu 1166 敌兵布阵 单点更新区间求和
- 线段树入门[单点更新] 敌兵布阵 HDU 1166
- hdu 1166 敌兵布阵(线段树,单点更新)
- hdu 1166 敌兵布阵(线段树-单点更新)
- hdu 1166 敌兵布阵 线段树(单点更新)
- hdu 1166 敌兵布阵 线段树 单点更新
- [ACM] hdu 1166 敌兵布阵 (线段树,单点更新)
- hdu-1166-敌兵布阵-线段树-单点更新,区域查询
- HDU 1166 敌兵布阵 //线段树单点更新
- HDU 1166 敌兵布阵(线段树入门,单点更新)
- HDU 1166-敌兵布阵(线段树_单点更新)
- hdu 1166 敌兵布阵 线段树单点更新
- 敌兵布阵 - HDU 1166 单点更新线段树
- hdu 1166 敌兵布阵(单点更新线段树)
- hdu 1166 敌兵布阵(线段树入门-单点更新)
- HDU 1166 敌兵布阵【线段树-单点更新】
- spring框架学习(三)junit单元测试
- 关于在android webview上运行html5的开发经验
- [BZOJ2178]圆的面积并(辛普森积分)
- 使用poi分多级sheet生成excel
- vim如何显示行号
- HDU 1166 敌兵布阵(线段树单点更新)
- 多平台轻量级消息推送系统msgd
- pfring 调研+总结
- spring框架学习(四)自动装配
- PHP获取微信粉丝的OpenID
- springMVC日期转换及The request sent by the client was syntactically incorrect.解决办法
- webdriver-超时与等待
- 简单编程题目连载(八)——最短路径问题
- 关于easyUI删除表格中的行后,提示删除成功并重新加载表格的方法