HDU 2852 KiKi's K-Number 树状数组
来源:互联网 发布:css优化 编辑:程序博客网 时间:2024/05/18 00:15
先补充从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;elseR=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");elseadd(temp,-1);}else if(action==2) //query{int k;scanf("%d",&k);findk(temp,k);}}}return 0;}
- hdu 2852 KiKi's K-Number 二分+树状数组
- HDU 2852 KiKi's K-Number 树状数组
- [树状数组]hdu 2852 KiKi's K-Number# +二分查找。
- hdu 2852 KiKi's K-Number(树状数组+二分)
- hdu 2852 KiKi's K-Number (树状数组)
- HDU 2852 KiKi's K-Number 树状数组
- HDU 2852 KiKi's K-Number(线段树+树状数组)
- hdu 2852 KiKi's K-Number(树状数组)
- hdu 2852 KiKi's K-Number 树状数组
- HDU 2852 KiKi's K-Number(树状数组+二分)
- hdu 2852 KiKi's K-Number (树状数组)
- hdu 2852 KiKi's K-Number(树状数组)
- HDU 2852 KiKi's K-Number (树状数组+二分)
- HDU 2852 KiKi's K-Number 二分+树状数组
- HDU 2852 KiKi's K-Number(树状数组)
- HDU 2852KiKi's K-Number 树状数组
- HDU 2852 KiKi's K-Number(树状数组+二分)
- HDU 2852 KiKi's K-Number【 树状数组 二分 】
- ubuntu DNW安装
- 【优生优育:女性避孕失败的6个征兆】
- java spring Coding To Interfaces 圆类
- C++实现一个Vector3空间向量类
- 浙工ACM1738
- HDU 2852 KiKi's K-Number 树状数组
- SQL Server 2008 R2 安装出错:Could not open key
- go 语言环境变量配置
- VS2010配置DarkGDK
- UVA 10561 Treblecross(组合游戏_SG定理的应用)
- fafu 1076 - 游戏
- (8)算法设计
- C#DES加密和解密
- php-hyperdex