国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

hdu1166 敵兵布陣 【線段樹】

2019-11-08 02:17:23
字體:
來源:轉載
供稿:網友

題目鏈接:http://acm.hdu.edu.cn/showPRoblem.php?pid=1166 題意:中文題 解析:線段樹,單點更新,單點查詢

#include <bits/stdc++.h>using namespace std;const int maxn = 50000+100;struct node{ int l,r; int sum;}tree[4* maxn];int a[maxn];void push_up(int i){ tree[i].sum = tree[i<<1].sum + tree[i<<1|1].sum;}void build(int i,int l,int r){ tree[i].l = l,tree[i].r = r; tree[i].sum = 0; if(l==r) { tree[i].sum = a[l]; return ; } int mid = (l+r)>>1; build(i<<1,l,mid); build(i<<1|1,mid+1,r); push_up(i);}void update(int i,int pos,int val){ int l = tree[i].l; int r = tree[i].r; if(l==pos && r==pos) { tree[i].sum += val; return ; } int mid = (l+r)>>1; if(mid>=pos) update(i<<1,pos,val); else update(i<<1|1,pos,val); push_up(i);}int query(int i,int l,int r){ int L = tree[i].l; int R = tree[i].r; if(l<=L && R<=r) return tree[i].sum; int mid = (L+R)>>1; int ans = 0; if(mid<r) ans += query(i<<1|1,l,r); if(mid>=l) ans += query(i<<1,l,r); return ans;}int main(void){ int t,case_t = 1; cin>>t; while(t--) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); build(1,1,n); char op[100]; printf("Case %d:/n",case_t++); while(~scanf("%s",op) && op[0]!='E') { int x,y; scanf("%d %d",&x,&y); if(op[0]=='Q') printf("%d/n",query(1,x,y)); else if(op[0]=='A') update(1,x,y); else update(1,x,-y); } } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五峰| 彩票| 星座| 鄄城县| 陕西省| 辰溪县| 黄石市| 武安市| 云梦县| 永宁县| 库伦旗| 铅山县| 偃师市| 达孜县| 洱源县| 四会市| 东台市| 米泉市| 临泉县| 新晃| 东阳市| 南开区| 将乐县| 微博| 颍上县| 合山市| 灵武市| 水富县| 三江| 赫章县| 绵阳市| 保康县| 盐亭县| 焉耆| 公主岭市| 泰安市| 青铜峡市| 鹤峰县| 读书| 色达县| 吉安市|