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 級的...