樹狀陣列 hdu1541 Stars

2021-10-09 01:33:47 字數 1009 閱讀 3971

題意:

每顆星星都要自己的x,y座標,

計算每顆星星左下角的星星數,輸入是按照y遞增輸入的。

輸入:

輸入n,接下來有n組x,y,其中y是遞增的

輸出:

輸出左下角星星個數從0到n-1個的星星數

sample input

51 1

5 17 1

3 35 5

sample output12

110解析:

是樹狀陣列模板題,因為是按照y遞增的,所以就按順序來,在當前點,前面的點就都是它左下角的點,sum(x)就是在當前點左下角點的個數。然後ans[sum(x)] 計數即可。

注意:樹狀陣列不能查詢下標為0的情況,所以所有的點x都+1往後挪一位。

**:

#include

#include

#include

#include

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

using

namespace std;

typedef

long

long ll;

const

int maxn=

32010

;int t,n,m,x,y,cnt=0;

int ans[maxn]

,tree[maxn]

;void

add(

int x,

int d)

}int

sum(

int x)

return s;

}int

main()

for(

int i=

0;ireturn0;

}

HDOJ 1541 star 樹狀陣列)

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

HDU 1541 樹狀陣列

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

樹狀陣列hdu1541

題意 大概就是計算每顆星星左下邊包括了多少顆星星,這個數值就是level。左下邊不包括本身,不超過本身的x,y的座標,可以等於。問每種level有多少顆星星。思路 1.每次輸入乙個座標對之後,都要計算一下這個它的level。2.此題的x座標可以為0,而樹狀陣列是從1開始的,所以處理的時候對每個x座標...