樹狀陣列 HDOJ 1541 Stars

2021-06-22 12:46:37 字數 744 閱讀 3055

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

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 32005

#define eps 1e-7

#define mod 1000000007

#define inf 99999999

#define lowbit(x) (x&(-x))

typedef long long ll;

using namespace std;

int tree[maxn];

int hash[maxn];

int n;

void add(int x)

int get(void)

int main(void)

{ int i, x, y;

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

getchar();

memset(tree, 0, sizeof tree);

memset(hash, 0, sizeof hash);

for(i=0;i

HDOJ 1541 樹狀陣列

題目 題意 給一組星星,每顆星星左下角有多少個星星他就是多少級。然後輸出沒級星星個數。題目按y公升序。所以只要考慮x。因為x,y的範圍不大。只有32000,所以可以建立樹狀陣列了。include define pi 3.1415926 define inf 1e18 define inf 1e9 d...

HDOJ 1541 star 樹狀陣列)

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

HDU 1541 樹狀陣列

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