HDU 2642 樹狀陣列

2022-04-05 07:32:42 字數 662 閱讀 1420

題意:給個二維矩陣,矩陣有0或者1兩個值,然後有三個操作,q問區間和,剩下兩個是更新點的值

思路:更新點的值直接更新就行了,然後詢問區間和的時候就處理一下,每次問的是x1,y1到x2,y2的區間和,而樹狀陣列的和是從1,1開始的,所以總的減去多於的在加上多減去的就ok了

#include

#include

#include

#include

#include

using namespace std;

typedef long long ll;

typedef unsigned long long ull;

const int inf=0x3f3f3f3f;

const ll inf=0x3f3f3f3f3f3f3f3fll;

const int maxn=1010;

int sum[maxn][maxn],n;

bool vis[maxn][maxn];

int lowbit(int x)

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

}return res;

}int main()else if(ch[0]=='d')else if(ch[0]=='q')}}

return 0;

}

hdu 3887 樹狀陣列

給你一棵樹,每個節點都有個編號。讓你求乙個節點他的子樹中編號比他小的節點有幾個。編號唯一,從1 n,已給出根節點 解 樹狀陣列統計。轉化為線性序列。可以想到的是,若要統計乙個節點,那麼比它小的孩子必須先插完,然後統計就行了。對於乙個節點i來說,只要把所有x那麼對於所有節點來說也是這樣的,從一開始插,...

hdu 3333 樹狀陣列

此題與3743相仿,但本題資料較大,需要用到離散化。如何去掉重複元素呢?採用離線演算法 首先將詢問按右端點從小到大排序,離線處理時,記錄每個元素所在位置,遇到重複元素時,從它之前出現的位置減去這個元素,這樣就是的每個元素總是出現在最後。include include include include ...

樹狀陣列 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 ...