POJ2352樹狀陣列入門

2021-08-21 20:26:24 字數 747 閱讀 8094

題目大意

在座標上有n個星星,如果某個星星座標為(x, y), 它的左下位置為:(x0,y0),x0<=x 且y0<=y。如果左下位置有a個星星,就表示這個星星屬於level a。

按照y遞增,如果y相同則x遞增的順序給出n個星星,求出所有level水平的數量。

因為題意給出y按照遞增的順序給出,所以只要依次判斷小於等於x的數量有多少個及為level水平。

因此用樹狀陣列來維護小於x的數量有多少個,然後累加起來就行了。

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long

int ll;

const

int n=100000+10;

const

int max=32005;

int c[n],leve[n],n,m;

int lowbit(int i)

int add(int x)

}int sum(int x)

return ans;

}int main()

for(int i=0;iprintf("%d\n",leve[i]);

}return

0;}

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...