国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保亭| 都兰县| 贡嘎县| 普安县| 呈贡县| 济宁市| 汝州市| 青田县| 博白县| SHOW| 辽源市| 宜兰市| 泸水县| 且末县| 新源县| 海阳市| 延津县| 天长市| 鄂托克旗| 乐平市| 阿拉善盟| 福鼎市| 子长县| 武川县| 衢州市| 黄大仙区| 岳西县| 沾益县| 呈贡县| 剑川县| 西城区| 龙山县| 巫山县| 安西县| 承德县| 武山县| 庆云县| 绥中县| 简阳市| 崇明县| 松潘县|