UVA 12086
2012-11-21 23:17
204 查看
题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3238
简单树状数组。。
简单树状数组。。
#include <cmath> #include <ctime> #include <iostream> #include <string> #include <vector> #include <cstdio> #include <cstdlib> #include <cstring> #include <queue> #include <map> #include <set> #include <algorithm> #include <cctype> #include <stack> #include <deque> using namespace std; typedef long long LL; #define EPS 10e-9 #define INF 0x3f3f3f3f #define REP(i,n) for(int i=0; i<(n); i++) const int maxn = 200000+100; int n; int c[maxn],d[maxn]; int lowbit(int x){ return x&-x; } void add(int x,int d){ while(x<=n){ c[x]+=d; x+=lowbit(x); } } int sum(int x){ int ret=0; while(x>0){ ret+=c[x]; x-=lowbit(x); } return ret; } int main(){ char str[1000]; int x,y,ca=1; bool f=true; while(scanf("%d",&n)!=EOF){ if(n==0) break; memset(c,0,sizeof(c)); for(int i=1;i<=n;i++){ scanf("%d",&d[i]); add(i,d[i]); } if( !f ) printf("\n"); f = false; printf("Case %d:\n",ca++); while(1){ scanf("%s",str); if(strcmp(str,"END")==0) break; scanf("%d%d",&x,&y); if(str[0]=='S'){ int t=d[x]; d[x]=y; add(x,-t); add(x,y); } else{ printf("%d\n",sum(y)-sum(x-1)); } } } return 0; }
相关文章推荐
- uva 12086 - Potentiometers--树状数组
- UVa:12086 Potentiometers
- uva 12086 树状数组
- UVa12086 - Potentiometers(树状数组即Fenwick树)
- UVA 12086 - Potentiometers(树状数组)
- UVa 12086 Potentiometers (树状数组&点修改)
- uva 12086 - Potentiometers(树状数组)
- UVA 12086 (树状数组)
- uva 12086 - Potentiometers
- UVA 12086 Potentiometers(树状数组)
- uva 12086 树状数组
- UVa12086 - Potentiometers
- UVa 12086 Potentiometers 树状数组裸题 单点更新 区间查询
- uva 12086 线段树or树状数组练习
- UVA 12086 Potentiometers(树状数组|| 线段树单点更新)
- uva 12086 - Potentiometers(树状数组)
- UVa 12086 - Potentiometers
- UVA 12086 - Potentiometers(树状数组)
- uva 12086 - Potentiometers
- 【uva】12086-Potentiometers