POJ 2352 Stars 樹狀陣列

2021-10-25 06:28:24 字數 1130 閱讀 3498

注意到:stars are listed in ascending order of y coordinate.

輸入的星星座標是按照y

yy座標從小到大輸入的,所以後輸入的星星一定不再先輸入的星星的左下方,我們也就不需要再考慮y

yy座標對星星的影響。二維影象就轉化為了一維影象。

對於當前星星的x

xx座標,我們就只需要查詢在x

xx及之前有多少個點,然後將改點的x

xx座標加入後續統計中。

樹狀陣列維護即可。

注意,x

xx座標從0

00開始,而樹狀陣列下標不能為0

00,我們在輸入的時候將x

xx座標+1+1

+1就好。實際上,哪怕輸入的y

yy座標不是嚴格增加,甚至y

yy座標數值上億我們依然可做。

不是嚴格增加我們就離線處理然後排序;座標數值上億我們進行離散化就可。

#include

#include

#include

#include

#include

#define ll long long

#define db double

using

namespace std;

const ll size=

1e5+5;

const ll mx=

32005

; ll n,c[size]

,ans[size]

;inline ll read()

while

(ch>=

'0'&&ch<=

'9')

return f?

-x:x;

}inline ll lowbit

(ll x)

void

update

(ll x)

} ll getsum

(ll x)

return sum;

}int

main()

for(ll i=

0;i)printf

("%lld\n"

,ans[i]);

return0;

}

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

我的第一道樹狀陣列哇咔咔 大一的時候怎麼都看不懂,也許我當時太不用心了吧。題意 給一些點的座標,每個點的level是看比它高度低且不在它右邊的點的個數。演算法 由於此題座標本來就是按y值從小到大,x值從小到大排列的。所以樹狀陣列中存座標為x的點的個數。每次讀入只要找1 x的sum,然後更新數量 1即...