版权声明:本文为博主原创文章,未经博主允许不得转载。

hdu 2852

题意:

  一个容器,三种操作:

    (1) 加入一个数 e

    (2) 删除一个数 e,如果不存在则输出 No Elment!

    (3) 查询比a大的数中的第k小数,不存在就输出 Not Find!

解法:

  关于第三点,可以先查询小于等于a的数的个数cnt,然后直接查询第cnt+k小数就行了 。

  二分+树状数组 或者 主席树(有点杀鸡用牛刀的感觉 。。。) 也是可以做的  _(:з」∠)_

code:线段树

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <set>
#include <vector>
#include <map>
#define ll long long using namespace std; const int N=1e5+; int L[N*],R[N*],cnt[N*]; inline void bulidtree(int l,int r,int k){
L[k]=l; R[k]=r;
cnt[k]=;
if (l==r) return;
int mid=(l+r)>>;
bulidtree(l,mid,k<<);
bulidtree(mid+,r,(k<<)|);
} inline void update(int p,int d,int k){
cnt[k]+=d;
if (L[k]==R[k]) return;
int mid=(L[k]+R[k])>>;
if (p<=mid) update(p,d,k<<);
else update(p,d,(k<<)|);
} inline int query(int x,int y,int k){
if (L[k]==x && R[k]==y)
return cnt[k];
int mid=(L[k]+R[k])>>;
if (y<=mid) return query(x,y,k<<);
else if (x>mid) return query(x,y,(k<<)|);
else return query(x,mid,k<<)+query(mid+,y,(k<<)|);
} inline int find(int x,int k){
if (cnt[k]<x) return -;
while (L[k]!=R[k]){
if (x<=cnt[k<<]) k=k<<;
else {
x-=cnt[k<<];
k=(k<<)|;
}
}
return L[k];
} int main(){
int m;
while (~scanf("%d",&m)){
int p,x,y;
bulidtree(,N-,);
while (m--){
scanf("%d",&p);
switch(p){
case :
scanf("%d",&x);
update(x,,);
break;
case :
scanf("%d",&x);
if (query(x,x,)) update(x,-,);
else puts("No Elment!");
break;
case :
scanf("%d%d",&x,&y);
int ans=find(query(,x,)+y,);
if (~ans) printf("%d\n",ans);
else puts("Not Find!");
break;
}
}
}
return ;
}

hdu 2852 KiKi's K-Number (线段树)的更多相关文章

  1. HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)

    HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对) 题意分析 给出n个数的序列,a1,a2,a3--an,ai∈[0,n-1],求环序列中逆序对 ...

  2. hdu 5274 Dylans loves tree(LCA + 线段树)

    Dylans loves tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  3. HDU 3074.Multiply game-区间乘法-线段树(单点更新、区间查询),上推标记取模

    Multiply game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  4. hdu - 1394 Minimum Inversion Number(线段树水题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1394 很基础的线段树. 先查询在更新,如果后面的数比前面的数小肯定会查询到前面已经更新过的值,这时候返回的sum ...

  5. K-th Number 线段树的区间第K大

    http://poj.org/problem?id=2104 由于这题的时间限制不紧,所以用线段树水一水. 每个节点保存的是一个数组. 就是对应区间排好序的数组. 建树的时间复杂度需要nlogn 然后 ...

  6. HDU 1394 Minimum Inversion Number(线段树 或 树状数组)

    题目大意:给出从 0 到 n-1 的整数序列,A0,A1,A2...An-1.可将该序列的前m( 0 <= m < n )个数移到后面去,组成其他的序列,例如当 m=2 时,得到序列 A2 ...

  7. HDU - 6521 Party (SYSU校赛K题)(线段树)

    题目链接 题意:n个人排成一列,一开始他们互不认识,每次选[l,r]上的人开party,使他们互相认识,求出每次party之后新互相认识的人的对数. 思路:把“互相认识”变成单向连边,只考虑左边的人对 ...

  8. HDU 1394:Minimum Inversion Number(树状数组,线段树)[水]

    题意:有0~n-1这n个数,以一定的排列.这个排列可以循环,就是可以把第一个拿到最后,然后形成新的排列.问这些排列中的逆序对最小值. 思路: 最后的循环,拿走一个之后,新的逆序对数 newsum = ...

  9. hdu 13394 Minimum Inversion Number 线段树

    题意: 首先给你一个长度为n的序列v,你需要首先找出来逆序对(i<j && v[i]>v[j]) 然后把这个序列的最后一个元素放在第一个位置上,其他元素都向后移动一位. 一 ...

随机推荐

  1. AFNetworking你最最最起码要知道的基本使用~

    AFNetworking是一个在iOS开发中,使用非常多的一个开源库 适用于iOS以及Mac OS X, 它构建于在(Apple iOS开发文档)NSURLConnection, NSOperatio ...

  2. BZOJ4719 NOIP2016天天爱跑步(线段树合并)

    线段树合并的话这个noip最难题就是个裸题了. 注意merge最后return x,以及如果需要区间查询的话这里还需要up,无数次死于这里. #include<iostream> #inc ...

  3. HttpHelper类及调用

    首先列出HttpHelper类 /// <summary> /// Http操作类 /// </summary> public class HttpHelper { priva ...

  4. Mybatis笔记二:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    错误异常:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.test.dao.N ...

  5. jQuery 前端实现手机验证码

    html <input id="phone" type="text" name="phone"> <input id=&q ...

  6. portal商品展示功能逻辑

    看下接口: 返回值: 门户商品搜索功能的实现: 根据分类id进行搜索,根据关键词进行搜索,并按照一定的顺序排序 业务逻辑: 1.查询分类是否存在. 2.如果分类存在,则递归分类,展示父类商品,子类商品 ...

  7. Linux遇到的两个问题

    编译C++的和编译C语言的命令不同. 编译C++,应当先安装g++. 然后可以用#g++ filename.cpp -o filename 进行编译 编译C语言是用#gcc filename.c -o ...

  8. c# extern 关键字

    TEST.DLL 项目引用TEST.DLL 调用其中的方法 结果如下:

  9. Restful 接口传递参数

    首先补充一下什么是 Restful ,这里简单说一下,如果一个架构符合REST原则,就称它为RESTful架构. RESTful架构特点: (1)每一个URI代表一种资源: (2)客户端和服务器之间, ...

  10. JSTL获取当日时间与数据时间比较

    <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value=& ...