LightOJ1112——Curious Robin Hood
来源:互联网 发布:数控加工编程实例 编辑:程序博客网 时间:2024/05/22 15:59
线段树区间总和,单点更新。
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int maxN=100010;int tree[4*maxN];int money[maxN];void build(int no,int l,int r){ if(l==r) { tree[no]=money[l]; return; } int mid=(l+r)>>1; int no2=no<<1; build(no2,l,mid); build(no2+1,mid+1,r); tree[no]=tree[no2]+tree[no2+1];}void update1(int no,int l,int r,int x){ if(l==r) { printf("%d\n",tree[no]); tree[no]=0; return; } int mid=(l+r)>>1; int no2=no<<1; if(x<=mid) update1(no2,l,mid,x); else update1(no2+1,mid+1,r,x); tree[no]=tree[no2]+tree[no2+1];}void update2(int no,int l,int r,int x,int change){ if(l==r) { tree[no]+=change; return; } int mid=(l+r)>>1; int no2=no<<1; if(x<=mid) update2(no2,l,mid,x,change); else update2(no2+1,mid+1,r,x,change); tree[no]=tree[no2]+tree[no2+1];}int query(int no,int l,int r,int a,int b){ if(a==l && b==r) { return tree[no]; } int mid=(l+r)>>1; int no2=no<<1; if(b<=mid) return query(no2,l,mid,a,b); if(a>mid) return query(no2+1,mid+1,r,a,b); return query(no2,l,mid,a,mid)+query(no2+1,mid+1,r,mid+1,b);}int main(){ int t; //freopen("stdin.txt","r",stdin); scanf("%d",&t); for(int id=1; id<=t; id++) { int n,m; int cas; int x,y; printf("Case %d:\n",id); scanf("%d %d",&n,&m); for(int i=1; i<=n; i++) scanf("%d",&money[i]); build(1,1,n); for(int i=1; i<=m; i++) { scanf("%d",&cas); switch(cas) { case 1: scanf("%d",&x); x+=1; update1(1,1,n,x); break; case 2: scanf("%d %d",&x,&y); x+=1; update2(1,1,n,x,y); break; case 3: scanf("%d %d",&x,&y); x+=1,y+=1; printf("%d\n",query(1,1,n,x,y)); break; } } } return 0;}
0 0
- LightOJ1112——Curious Robin Hood
- Lightoj1112——Curious Robin Hood(线段树+单点更新)
- Curious Robin Hood
- LightOJ 1112 Curious Robin Hood
- Curious Robin Hood(简单线段树)
- Light oj 1112 - Curious Robin Hood(树状数组)
- Light oj 1112-Curious Robin hood --树状数组
- 树状数组初步 Light OJ 1112 Curious Robin Hood
- LightOj 1112 Curious Robin Hood(线段树||树状数组)
- Light oj 1112 - Curious Robin Hood【单点更新】
- lightOj 1112 Curious Robin Hood (线段树)
- CodeForces Round 352——Recycling Bottles & Robin Hood
- Lightoj 1112 - Curious Robin Hood 【单点修改 + 单点、 区间查询】【树状数组 水题】
- LightOJ 1112 Curious Robin Hood && LightOJ 1266 Points in Rectangle(树状数组)
- CF_671B Robin Hood(二分)
- codefores 352 D. Robin Hood
- codeoforces 671B Robin Hood
- CodeForces 671B Robin Hood
- 利用XML聚合字符串
- C++学习网站
- 在网页上显示黑客帝国字幕效果
- Android Stuidio之优点
- 接口
- LightOJ1112——Curious Robin Hood
- 讲解Oracle数据库移植到MySQL
- Android屏幕适配
- 数据结构基础 之 图 的 邻接矩阵实现与邻接表实现
- DirectUI界面编程(一)创建第一个应用
- WordPress 中 body_class 函数那些事
- 【leetcode】Evaluate Reverse Polish Notation
- 内存溢出和内存泄漏的区别
- 工作日志2