樹狀陣列(poj2352)

2021-07-24 18:18:59 字數 502 閱讀 5135

題解:題目資料中點按照y軸公升序給出。而對於點(x,y)的左下方點的個數就是xi<=x,yi<=y的點的個數。在題中對於任意 xi 只用求得 xj<=xi,(j<=i)的 j 的個數。 最後放入level陣列中統計每個等級的點的個數。

ac**:

#include#include#define maxn 32000+10

int bit[maxn];

int level[maxn/2];

int sum(int x)

return ans;

}

void add(int x)

} int main()

{ int n,i,x,y;

while(scanf("%d",&n)!=eof)

{ memset(bit,0,sizeof(bit));

memset(level,0,sizeof(level));

for(i=0;i

poj 2352 樹狀陣列

這道題好像被賤做了,看起來像二維的樹狀陣列,其實只是一維的,可能是資料太大了,矩陣開不那麼大,因為題意是求乙個矩陣中做它左下部分的個數,而去輸入的順序是按y公升序,後x公升序輸入。其實如果不按這個順序可以下排序。然後就是一維的樹狀陣列的思路了。轉個圖,可以知道它的這陣列性質了 include inc...

poj 2352 樹狀陣列

第一次做樹狀陣列的題,還是遇到了一點小麻煩,吃一塹長一智。對於樹狀陣列來說,下標不能從0開始,否則就死迴圈了。因為0 lowbit 0 0 就死迴圈下去了。其他的就沒什麼了,其實這道題就看x值,而且題意還給排好序了。直接計算就ok了。如下 include include include includ...

poj2352 樹狀陣列

題意 求0 n級別的星星的個數 以每乙個星星為原點建立平面直角座標系,在當前座標系第三象限的星星的個數看做乙個星星的級別數 include include include include include include include include include include using na...