poj 2352 Stars 樹狀陣列

2021-06-23 02:26:43 字數 637 閱讀 8479

我的第一道樹狀陣列哇咔咔~~~~~~~~~

大一的時候怎麼都看不懂,也許我當時太不用心了吧。。。

題意:

給一些點的座標,每個點的level是看比它高度低且不在它右邊的點的個數。

演算法:

由於此題座標本來就是按y值從小到大,x值從小到大排列的。

所以樹狀陣列中存座標為x的點的個數。每次讀入只要找1-x的sum,然後更新數量+1即可。

注意陣列要開到x的最大值32000+。因為這個re了一次。

#include#include#include#define maxn 32010

using namespace std;

int level[maxn],c[maxn],n;

int lowbit(int x)

int getsum(int pos)

return ret;

}void update(int pos)

}int main()

{ int x,y;

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

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

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

for(int i=0;i

樹狀陣列 poj2352 Stars

stars 題目 題意 在乙個二維陣列中統計某個等級星星的個數,星星的等級為不比此星星高且不在它右邊範圍內的星星個數。題解 因為輸入的資料已經排序,只要一邊接收輸入一邊計算等級即可。include includeusing namespace std int a 15005 c 32010 defi...

poj 2352 Stars(樹狀陣列)

題意 依次給出n個星星的座標 y座標以非遞減的順序輸入 對於每個星星,她的等級等於她左下方的星星的個數和 包括邊界上的星星 要求輸出等級0到等級n 1的星星的個數。0 x,y,32000,1 n 15000 設x i 表示橫座標為i的星星有多少顆,那麼對於乙個單一詢問 星星 k,y 的等級是多少?要...

POJ 2352 Stars 樹狀陣列

題目大意 給出y值公升序的一些點,定義乙個點的level值為它左下方的點的數量,求每乙個level有多少個點。思路 由於y值是公升序的,那麼後面的點只要判斷是否x值比前面的大就行了。那麼就用樹狀陣列維護。code include include include include define max ...