HDOJ 1541 樹狀陣列

2021-08-15 09:48:07 字數 822 閱讀 9754

題目:

題意:給一組星星,每顆星星左下角有多少個星星他就是多少級。然後輸出沒級星星個數。

題目按y公升序。所以只要考慮x。

因為x,y的範圍不大。只有32000,所以可以建立樹狀陣列了。

#include

#define pi 3.1415926

#define inf 1e18

#define inf 1e9

#define min(a,b) a#define max(a,b) a>b?a:b

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define ios ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)

using

namespace

std ;

typedef

long

long ll;

typedef

unsigned

long

long ull;

const

int _max = 32010;

int c[_max],num[_max],n;

int lowbit(int i)

void update(int i,int val)

}int sum(int i)

return sum ;

}int main()

for(int i = 0 ; i < n ; i++)

cout

0;}

樹狀陣列 HDOJ 1541 Stars

剛開始一點都不覺得是樹狀陣列。有很長一段時間覺的排個序就行了。直到重新讀題發現輸入是按順序的。不過值得注意的是輸入的x,y可能是0,但是在樹狀陣列中是不能為0的。最後加上乙個十分酷炫 喪心病狂 的輸入優化,直接跑第一面了。include include include include include...

HDOJ 1541 star 樹狀陣列)

這道題告訴我們若干顆星星的座標,告訴我們的時候y座標已經按照公升序排列了。對於每一顆星,它的等級數等於它左邊和左上角星星的顆數。最後問每一顆星星的等級。把星星按照給我們的順序 就是y座標從小到大的順序 依次把乙個陣列中下標為x的元素加1。對於某一顆星,座標為x,那麼把陣列中下標為x及之前的所有元素相...

HDU 1541 樹狀陣列

傳送門 hdu 1541 給定一組點,用座標表示,求各個層次的點的數量,每個點層次指的是其它點中 座標均不大於當前點 座標點的數量 注意題目給出,所有輸入對於 來說都是不降序,所以只要考慮 就可以了,y不增的時候x自增,所以後輸入的點不會影響先輸入點的層次 因為計算層次的時候要排除自身,所以要先更新...