先补充从n个数中求第k小数的理论知识。。。。。。。。

睡觉去~

------------------------------------------又要睡觉的分割线------------------------------------------

HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2852

题目大意,给定三种操作:

0  a代表插入一个数

1  a代表删除掉a这个数

2 a k 查询比a大的第k个数

跟着大神走~树状数组+二分

树状数组更新的求和的时间都只要log(n)

#include<cstdio>
#include<cstring>
const int MAXN=100000+10;
int data[MAXN]; //设置data为统计比该下标小的元素个数 inline int lowbit(int x)
{
return x&(-x);
} int sum(int x)
{
int res=0;
while(x>0)
{
res+=data[x];
x-=lowbit(x);
}
return res;
} void add(int id,int t)
{
while(id < MAXN)
{
data[id]+=t;
id+=lowbit(id);
}
} void findk(int x,int k) // >=x kth number
{
int L=x+1;
int R=MAXN; int cur_sum=sum(x);
while(L<R)
{
int mid=(L+R)>>1; //这里并不会越界
int mid_sum=sum(mid); if(mid_sum - cur_sum < k)
L=mid+1;
else
R=mid; } if(L==MAXN)
printf("Not Find!\n");
else
printf("%d\n",L); } int main()
{
int T;
while(~scanf("%d",&T))
{
memset(data,0,sizeof(data)); while(T--)
{
int action,temp;
scanf("%d%d",&action,&temp);
if(action==0) //push
{
add(temp,1);
}
else if(action==1) //pop
{
if(sum(temp)==sum(temp-1))
printf("No Elment!\n");
else
add(temp,-1);
}
else if(action==2) //query
{
int k;
scanf("%d",&k);
findk(temp,k);
} } }
return 0;
}

最新文章

  1. svn 几个常用命令(持续更新)
  2. Java_ClassLoader内存溢出-从tomcat的reload说起
  3. C#、js、json Datetime格式总结
  4. error: ‘for’ loop initial declarations are only allowed in
  5. c# 多显示器设置主屏幕(Set primary screen for multiple monitors)
  6. Mojo 返回一维和二维数组
  7. POJ 3301 Texas Trip
  8. 【转】JDBC学习笔记(5)——利用反射及JDBC元数据编写通用的查询方法
  9. [转]TOMCAT配置多端口
  10. git的基本使用方式
  11. ubuntu git hub 建立仓库
  12. for循环 例子
  13. Apple ID双重认证验证码无法输入问题
  14. github咋用昂
  15. SRM464
  16. Linux内核分析作业 NO.1
  17. OnClickListener接口
  18. 首页大屏广告效果 jquery轮播图淡入淡出
  19. PHPWAMP自启异常,服务器重启后Apache等服务不会自动重启的原因分析
  20. Java23种设计模式学习笔记【目录总贴】

热门文章

  1. 【Educational Codeforces Round 36 C】 Permute Digits
  2. Irrlicht 3D Engine 笔记系列 之 教程5- User Interface
  3. linux host主机名配置
  4. activity-启动动画的设定(下面弹出出现,弹入下面消失)
  5. LinearLayout-margin不起作用的处理
  6. PHP glob() 函数详解
  7. Linux桌面新彩虹-Fedora 14 炫酷应用新体验
  8. Scala中的“=&gt;”和“&lt;-”
  9. 洛谷 P1724 东风谷早苗
  10. Apache httpd.conf 配置文件语法验证