樹狀陣列基礎

2022-05-13 09:51:08 字數 965 閱讀 3461

關於樹狀陣列的講解推薦《演算法競賽入門經典訓練指南》

一維版本:

洛谷3374

分析:樹狀陣列裸的模板題

1 #include2 #include3 #include4

using

namespace

std;

5const

int maxn=500000+10;6

intc[maxn];

7int

n,m;

8int lowbit(int

x)11

void add(int x,int

d)15}16

int sum(int

x)21

return

ret;22}

23int

main()

2432

while(m--)else40}

41return0;

42 }

view code

二維版本:

vijos1512

分析:二維樹狀陣列的裸題,注意面積的計算

1 #include2 #include3 #include4 #include

5 #include6

using

namespace

std;

7const

int maxn=2000;8

intc[maxn][maxn];

9int

n,m;

10int lowbit(int

x)13

void add(int x,int y,int

d)18

int sum(int x,int

y)25

intmain()

26else41}

42return0;

43 }

view code

基礎樹狀陣列

la 4329 2008年北京區域賽 題目分析 首先是乘法原理加法原理計數,對a i 當做裁判的情況,記c i d i 分別表示前面和後面小於它的數的個數,ai當裁判方法數就是 c i n i 1 d i d i i c i 了 具體的見 演算法競賽入門經典訓練指南 197頁 樹狀陣列見194 19...

樹狀陣列基礎

基本用法 例題與線段樹比較 樹狀陣列的基本操作流程與線段樹很像,故學習起來時是兩者的操作對比起來學的。線段樹學習之單點更新與區間更新 樹狀陣列 binary indexed tree 是一種與線段樹類似的資料結構,又叫二進位制索引樹 spoil alert 跟二進位制有關 主要用於查詢區間和問題,每...

樹狀陣列基礎

樹狀陣列,又稱二進位制索引樹,英文名binary indexed tree。樹狀陣列用來求區間元素和,求一次區間元素和的時間效率為o logn 有些同學會覺得很奇怪。用乙個陣列s i 儲存序列a的前i個元素和,那麼求區間i,j的元素和不就為s j s i 1 那麼時間效率為o 1 豈不是更快?但是,...