題目:
夜空中有n顆恆星(n≤100000),每顆恆星具有其座標(x, y)(0≤x, y≤100000)。現在,天文學家要對這些恆星進行分類,分類的標準如下:對於任意一顆恆星s(x,y),如果存在k顆恆星,其x, y座標均不大於s,則恆星s屬於k類星。
如下圖所示:第5顆恆星為3類星,這是由1、2、4三顆恆星均在其左下方而得出的,類似地第2、4兩顆恆星為1類星,第3顆恆星為2類星。因此在這幅圖中只有一顆0類星,共有二顆1類星,2類星和3類星各有一顆。
現給出n顆恆星的座標,要求統計出0~n-1類星的個數。(翻譯摘自博主moep0)
對恆星按照x,y排序, 拍完序後已經保證了對於任意的i對於乙個y值yi,對於任意的i求k類星有多少個相當於getsum函式
#include #include #include #include #include #include #include #include #include #include #define maxn 100005
#define lowbit(x) ((x)&(-x))
typedef long long ll;
using namespace std;
ll n,a,b,maxy=0,c[maxn]=,ans[maxn]=;
struct node
int main()
sort(s+1,s+1+n);
for(ll i=1;i<=n;i++)
for(ll i=0;iprintf("%lld\n",ans[i]);
return 0;
}
樹狀陣列 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即...