/**
[树状数组]hdu 2852 KiKi's K-Number# +二分查找。
注意这里delete某个元素的时候只删除一个,就是说push进的每个数都是不同的。
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 100001
#define lowbit(i) (i) &(-i)
int b[N];
void add(int i,int c)
{
for(; i < N; i += lowbit(i))
b[i] += c;
}
int sum(int i)
{
int ans = 0;
for(; i > 0; i -= lowbit(i))
ans += b[i];
return ans;
}
int main()
{
int m,p,a,k,l,r,mid,sa;
while(scanf("%d",&m) == 1)
{
memset(b,0,sizeof(b));
while(m--)
{
scanf("%d",&p);
if(p == 0)
{
scanf("%d",&a);
add(a,1);
}
else if(p == 1)
{
scanf("%d",&a);
k &#
[树状数组]hdu 2852 KiKi's K-Number# +二分查找。
最新推荐文章于 2012-08-24 00:14:27 发布