hdu 1166 樹狀陣列 線段樹

2021-05-27 07:30:20 字數 1042 閱讀 9285

一道線段樹和樹狀陣列的基礎題

用樹狀陣列做:

#includeusing namespace std;

#define n 50010

int size,c[n];

int lowbit(int x)

void modify(int i,int x)

}int sum(int i)

return ans;

}int main()

printf("case %d:\n",total++);

while(scanf("%s",str)&&str[0] != 'e')

}} return 0;

}

用線段樹做:

#includeusing namespace std;

#define n 50010

struct node

tree[n*4];

int num[n];

void build(int l,int r,int i)

int mid = (l+r)>>1;

build(l,mid,i*2);

build(mid+1,r,i*2+1);

tree[i].sum = tree[i*2].sum + tree[i*2+1].sum;

}void modify(int l,int r,int v,int i)

int mid = (tree[i].left + tree[i].right)>>1;

if(r <= mid)

modify(l,r,v,i*2);

else if(l > mid)

modify(l,r,v,i*2+1);

else

tree[i].sum = tree[i*2].sum + tree[i*2+1].sum;

}int query(int l,int r,int i)

int main()

} }return 0;

}

hdu 1166 線段樹 樹狀陣列

剛剛做完4351的線段樹 想起當初入門的線段樹水題 於是迅速乾掉!裸裸的超標準單點更新線段樹格式 剛剛看了樹狀陣列 用來再次刷了一次這道題 下面 2012.9.24 include include include const int maxx 50000 using namespace std in...

HDU1166 敵兵布陣 樹狀陣列 線段樹

題目鏈結 題意就不再多囉嗦了,這道題目是樹狀陣列模板題目,也是我的第乙個樹狀陣列題目。就說一下一開始我的錯誤之處,我是直接輸入a i 的,而不是通過add 生成a i 所以在後期求和的時候總是求不對。正確的做法應該是通過add i,val 生成a i 這個,在管理第i的節點的以後的節點都會加上val...

樹狀陣列 HDU1166

繼續上次那題,我們現在採用樹狀陣列來解。樹狀陣列主要用來進行區間求和統計和定點更新操作,樹狀陣列的儲存是如下方式的 假設陣列a為a 1 a 2 a 3 a n 現在我們另陣列c 1 a 1 c 2 a 1 a 2 c 3 a 3 c 4 a 1 a 2 a 3 a 4 這是啥結構呢?其實c i a ...