KiKi s K Number 樹狀陣列

2021-09-19 01:25:46 字數 929 閱讀 5920

hdu - 2852

題意:

題意:題目給定三種操作: 0 x 表示把x插入容器 ; 1 x 表示刪除乙個x如果沒有x則輸出 no elment! ; 2 a k 表示比a大的數中的第k大的數 如果沒有輸出no find!

思路:

​ 樹狀陣列維護元素出現次數字首和即可。操作0即修改;操作1先查詢x是否存在,如果存在刪除乙個即可。操作2可以用二分逐漸逼近答案。

#include

#define mset(a,b) memset(a,b,sizeof(a))

using

namespace std;

typedef

long

long ll;

const ll maxn=

1e5+20;

const

int max=

100000

;int bt[maxn]

;int

lowbit

(int k)

void

modify

(int k,

int val)

}int

getsum

(int k)

return ans;

}int

clac

(int a,

int b)

int m,tot;

intmain()

if(sign==1)

else}if

(sign==2)

else

l=mid+1;

}if(ans==-1

)else

printf

("%d\n"

,ans);}

}}}

Binary Indexed Tree 樹狀陣列

做leetcode 做到meetingroomii的時候我知道不用線段樹或者樹狀陣列是不太好搞了。還是來學習一下吧。樹狀陣列算是線段樹的一種特殊情況 子集 所以樹狀陣列能解決的問題線段樹一定能做,但線段樹能做的樹狀陣列不一定能做。對乙個陣列進行如下操作 update i1,i2,operation ...

數星星 樹狀陣列

題目描述 天空中有一些星星,這些星星都在不同的位置,每個星星有個座標。如果乙個星星的左下方 包含正左和正下 有 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 級的...