【樹狀陣列 單點修改,區間求值】hdu 1166 敵兵佈陣
Link:http://acm.hdu.edu.cn/showproblem.php?pid=1166
#include <bits/stdc++.h>
using namespace std;
const int N = 5e4+5;
char s[10];
int tree[N],n;
void add(int x,int num){
while(x<=n){
tree[x]+=num;
x += x&(-x);
}
}
int getpre(int x){
int ans = 0;
while(x){
ans+=tree[x];
x -= x&(-x);
}
return ans;
}
int query(int x,int y){
return getpre(y)-getpre(x-1);
}
int main(){
int T,a;
scanf("%d",&T);
for(int cas=1; cas<=T; cas++){
memset(tree,0,sizeof(tree));
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
scanf("%d",&a);
add(i,a);
}
printf("Case %d:\n",cas);
int x,y;
while(~scanf("%s",s)){
if(strcmp(s,"End")==0)
break;
scanf("%d%d",&x,&y);
if(strcmp(s,"Add")==0)
add(x,y);
else if(strcmp(s,"Sub")==0)
add(x,-y);
else
printf("%d\n",query(x,y));
}
}
return 0;
}
相關文章
- HDU1166 敵兵佈陣【樹狀陣列 單點修改+區間查詢】陣列
- HDU 1166 敵兵佈陣 (樹狀陣列)陣列
- HDU 1166 敵兵佈陣(樹狀陣列)陣列
- HDU1166 敵兵佈陣【線段樹基礎:點修改+區間查詢】
- (hdu 1166)敵兵佈陣(線段樹入門,單點更新)
- 【樹狀陣列 區間修改,單點求值】1556 Color the ball陣列
- HDU 1166 敵兵佈陣 線段樹入門題目
- 樹狀陣列模板題 & (樹狀陣列 1:單點修改,區間查詢)陣列
- HDU 1556-Color the ball(樹狀陣列-區間修改 單點查詢)陣列
- HDU 1556【區間更新+單點查詢 樹狀陣列】陣列
- 樹狀陣列單點更新和區間查詢陣列
- 樹狀陣列的區間查詢與區間修改陣列
- hdu 3874 樹狀陣列陣列
- 變化的區間樹狀陣列,單點查詢陣列
- POJ 2155-Matrix(二維樹狀陣列-區間修改 單點查詢)陣列
- hdu 5147 樹狀陣列陣列
- POJ 3468 【區間修改+區間查詢 樹狀陣列 | 線段樹 | 分塊】陣列
- 【樹狀陣列 區間更新區間查詢】code陣列
- D 區間求和 [數學 樹狀陣列]陣列
- hdu 4836 The Query on the Tree(線段樹or樹狀陣列)陣列
- hdu4325 樹狀陣列+離散化陣列
- hdu 4368 樹狀陣列 離線維護陣列
- HDU 1556 Color the ball(線段樹|樹狀陣列)陣列
- 樹狀陣列陣列
- 10:Challenge 3(樹狀陣列直接修改)陣列
- HDU 2689 Sort it【樹狀陣列求逆序對】陣列
- 解析樹狀陣列陣列
- HDU 1541 & POJ 2352 Stars (樹狀陣列)陣列
- HDU2689 Sort it (樹狀陣列求逆序數)陣列
- HDU4843Wow! Such Sequence!(樹狀陣列寫法)陣列
- 求區間不同數的個數【樹狀陣列求解】陣列
- hdu4417 樹狀陣列(求指定區間比指定數小的數的個數)陣列
- HDU 6274 Master of Sequence(思維+樹狀陣列+二分)AST陣列
- HDU5419Victor and Toys(樹狀陣列+數學期望)陣列
- HDU 1394 Minimum Inversion Number (樹狀陣列求逆序數)陣列
- 樹狀陣列詳解陣列
- 樹狀陣列基礎陣列
- poj 2481 樹狀陣列陣列