hdu 1892 See you (二維樹狀陣列)

2021-07-10 21:30:55 字數 647 閱讀 3410

題目大意:

有很多方格,每個方格對應的座標為(i,j),剛開始時每個格仔裡有1本書,然後讓你統計一片區域有多少本書,還可以增加書和減

少,移動書。

演算法思想:

二維樹狀陣列。

需要注意的兩點是:

1.x,y座標從0開始,所以儲存更新的時候座標分別加1進行更新。因為0座標會進入死迴圈。

2.區間求和的時候bit陣列裡面存的是它整個左下角的和,所以還要進行操作(即下面的solve函式)讓它表示的此位置的數目。

#include using namespace std;

const int n = 1005;

int bit[n][n];

int lowbit(int x)

void add(int x,int y,int val)

x += lowbit(x);

}}int sum(int x,int y)

x -= lowbit(x);

}return ans;

}int solve(int x,int y)

int main()

else if(op[0] == 'm')

else}}

return 0;

}

hdu1892二維樹狀陣列

樹狀陣列一般的操作只有 1.單點更新,區間查詢 2.區間更新,單點查詢 其中區間更新和單點更新不能同時寫在一起,會對樹狀陣列的結構早成影響。這題 wa的情況主要是沒有考慮到 x1,y1 可能大於 x2,y2 訓練 訓練題鏈結 include include include include inclu...

hdu 1892 樹狀陣列,二維

注意點 輸入時x1,x2,y1,y2的大小判斷,x,y從0開始,書拿光時的判斷 第一題二維,還是蠻神奇的。include include includeusing namespace std define m 1002 int tree m 1 m 1 int lowbit int x void u...

HDU 1892 二維樹狀陣列

題目大意 有很多方格,每個方格對應的座標為 i,j 剛開始時每個格仔裡有1本書,然後讓你統計一片區域有多少本書,還可以增加書和減少,移動書。解題思路 和一維樹狀陣列沒撒子區別。一維擴充套件到二維而已。需要注意的兩點是 1.x,y座標從0開始,所以儲存更新的時候座標分別加1進行更新。因為0座標會進入死...