題意:
每顆星星都要自己的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座標...