1265 數星星 樹狀陣列

2021-10-03 05:54:04 字數 707 閱讀 3802

思路:

因為給定的座標已經按照縱座標排好序了,那麼對於每個點(x,y),它是第幾層取決於它左下部有多少個點,因為他的縱座標是最大的,那麼我們就利用樹狀陣列求出字首和s(每次在x位置處,單點修改此點的值+1),即第s層的星星數+1。再把這個點放入樹狀陣列中即可。

**:

#include#include#define rep(i,a,b) for(int i=a;i<=b;i++)

#define dep(i,a,b) for(int i=a;i>=b;i--)

#define ll long long

#include#include#include#include#includeusing namespace std;

const int maxn=35000+6;

#define mod 1000000007

#define inf 0x3f3f3f3f

int dx= ;

int dy= ;

int c[maxn];

int lowbit(int x)

void add(int x,int v)

}int sum(int x)

return ans;

}int ans[maxn];

int main()

rep(i,0,n-1)

return 0;

}

數星星 樹狀陣列

題目描述 天空中有一些星星,這些星星都在不同的位置,每個星星有個座標。如果乙個星星的左下方 包含正左和正下 有 k 顆星星,就說這顆星星是 k 級的。例如,上圖中星星 5 是 3 級的 1,2,4 在它左下 星星 2,4 是 1 級的。例圖中有 1 個 0 級,2 個 1 級,1 個 2 級,1 個...

數星星(樹狀陣列)

天空中有一些星星,這些星星都在不同的位置,每個星星有個座標。如果乙個星星的左下方 包含正左和正下 有 k 顆星星,就說這顆星星是 k 級的。例如,上圖中星星 5 是 3 級的 1,2,4 在它左下 星星 2,4 是 1 級的。例圖中有 1 個 0 級,2 個 1 級,1 個 2 級,1 個 3 級的...

數星星(樹狀陣列的應用)

1265.數星星 天空中有一些星星,這些星星都在不同的位置,每個星星有個座標。如果乙個星星的左下方 包含正左和正下 有 k k k 顆星星,就說這顆星星是 k k k 級的。例如,上圖中星星 5 5 5 是 3 3 3 級的 1,2 4 1,2,4 1,2,4 在它左下 星星 2,4 2,4 2,4...