數星星 contest 樹狀陣列練習 T2

2022-08-18 23:48:13 字數 846 閱讀 5285

天空中有一些星星,這些星星都在不同的位置,每個星星都有個座標,如果乙個星星的左下方(包括正左和正下)有k顆星星,就說這顆星星是k級的。

給定星星的位置,輸出各級星星的數目。

第一行,乙個整數n,表示星星的數目。接下來n行,每行兩個整數x,y,表示乙個星星的座標,輸入資料保證不會有星星重疊。

n行,每行乙個整數,分別表示0,1,2,3...n-1級星星的數目。

1<=n<=15000 0<=x,y<=32000。

這道題最開先真的難住我了(有什麼難不住你的靠。),然後其實這個y還沒什麼用(。在加入的過程中就依次統計sum和修改後面的sum。用乙個陣列記錄就行了。(真的很難啊靠。)

#include#include#include#include#define maxn 500005

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

#define int long long

using namespace std;

int c[maxn],cntx[maxn],cnty[maxn],gradee[maxn];

int n,x,y,maxy;

void doadd(int x,int d)

}int dofind(int x)

return ans;

}signed main()

for(int i=0;ireturn 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 數星星 樹狀陣列

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