hdu1166敌兵布阵(线段树点修改)
来源:互联网 发布:linux alien 编辑:程序博客网 时间:2024/05/22 04:46
#include<stdio.h>#include<string.h>#include<algorithm>#define N 50000+20using namespace std;int a[N];struct Nodes{ int l,r,sum;}node[N<<2];void Build(int root,int l,int r){ node[root].l=l; node[root].r=r; if(l==r)return ; int mid=(l+r)>>1; Build(root<<1,l,mid); Build((root<<1)+1,mid+1,r);}void Update(int root,int pos,int v){ if(node[root].l==node[root].r&&node[root].l==pos) { node[root].sum+=v; return ; } int mid=(node[root].l+node[root].r)>>1; if(pos<=mid)Update(root<<1,pos,v); else Update((root<<1)+1,pos,v); node[root].sum=node[root<<1].sum+node[(root<<1)+1].sum;}int Query(int root,int l,int r){ if(node[root].l==l&&node[root].r==r) return node[root].sum; int mid=(node[root].l+node[root].r)>>1; if(r<=mid)return Query(root<<1,l,r); else if(l>=mid+1)return Query((root<<1)+1,l,r); else return Query(root<<1,l,mid)+Query((root<<1)+1,mid+1,r);}int main(){ int T,n,l,r,pos,v,C=0; char act[10]; scanf("%d",&T); while(T--) { memset(node,0,sizeof(node)); scanf("%d",&n); Build(1,1,n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); Update(1,i,a[i]); } printf("Case %d:\n",++C); while(scanf("%s",act)) { if(!strcmp(act,"End"))break; if(!strcmp(act,"Query")) { scanf("%d%d",&l,&r); printf("%d\n",Query(1,l,r)); } else if(!strcmp(act,"Add")) { scanf("%d%d",&pos,&v); Update(1,pos,v); } else if(!strcmp(act,"Sub")) { scanf("%d%d",&pos,&v); Update(1,pos,-v); } } } return 0;}
0 0
- hdu1166敌兵布阵(线段树点修改)
- hdu1166--敌兵布阵(线段树修改点求和)
- HDU1166 敌兵布阵 线段树 点修改 求和
- 线段树-点修改区间查询--hdu1166敌兵布阵
- hdu1166 敌兵布阵 线段树 点更新
- HDU1166:敌兵布阵(线段树单点修改)
- 线段树 hdu1166 (敌兵布阵)
- 【线段树】 hdu1166 敌兵布阵
- hdu1166 敌兵布阵 线段树
- hdu1166敌兵布阵 (线段树)
- hdu1166 敌兵布阵,线段树
- HDU1166 敌兵布阵(线段树)
- hdu1166 敌兵布阵 线段树
- hdu1166- 敌兵布阵线段树
- 【线段树】hdu1166敌兵布阵
- hdu1166 敌兵布阵(线段树)
- 线段树 HDU1166 敌兵布阵
- hdu1166-敌兵布阵(线段树)
- 【Maven】Maven的简单使用
- ios build setting笔记
- c#(Asp.net)多个Excel文件合并到一个新的excel中
- iOS之Local Notification(本土通知)
- [转]便于理解mysql内幕的各种逻辑图组
- hdu1166敌兵布阵(线段树点修改)
- The "Double-Checked Locking is Broken" Declaration
- 通过PEB的Ldr枚举进程内所有已加载的模块
- eclipse log4j配置
- [1241]Oil Deposits HDU
- 简要分析汽车燃油供给系统一般有什么样的作用
- poj 3304 (计算机图论_直线和线段相交)
- Ganglia汇总监控搭建和配置详解
- android 仿微信Tab ActionBar+ViewPager+Fragment