在线求第k大,第一次用二分+树状数组写。。。比赛的时候分治啊,splay啊,主席树啊换来换去,然而以前为什么不知道可以这么写。。。

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#include <set>
#define inf 1000000007
#define maxn 100002 using namespace std; int n;
int seq[maxn]; struct peo
{
int h,x;
friend bool operator <(peo a, peo b)
{
return a.h<b.h;
}
}a[maxn]; struct bit
{
int b[maxn];
int num;
void add(int x,int z)
{
for (int i=x;i<=num;i+=(i&-i)) b[i]+=z;
}
int ask(int x)
{
int tmp=;
for (int i=x;i;i-=(i&-i)) tmp+=b[i];
return tmp;
}
void init(int n)
{
num=n;
memset(b,,sizeof(b));
}
}s; int main()
{
int Case;
scanf("%d",&Case);
for (int o=;o<=Case;o++)
{
int flag=;
scanf("%d",&n);
for (int i=;i<=n;i++)
scanf("%d%d",&a[i].h,&a[i].x);
sort(a+,a+n+);
s.init(n);
for (int i=;i<=n;i++) s.add(i,); for (int i=;i<=n;i++)
{
int tmp=inf, k=a[i].x;
if (<=k+ && k+<=n-i+) tmp=min(tmp,k+);
if (<=n-i-k+ && n-i-k+<=n-i+) tmp=min(tmp,n-i-k+);
if (tmp==inf)
{
flag=;
break;
}
int l=,r=n, now;
while (l<=r)
{
int mid=(l+r)>>;
if (s.ask(mid)>=tmp)
{
now=mid;
r=mid-;
}
else
l=mid+;
}
seq[now]=a[i].h;
s.add(now,-);
}
printf("Case #%d: ",o);
if (!flag) printf("impossible\n");
else
for (int i=;i<=n;i++)
if (i<n) printf("%d ",seq[i]);
else printf("%d\n",seq[i]);
}
return ;
}

queue

Hdu 5493 合肥网络赛 1010 Queue的更多相关文章

  1. Hdu 5489 合肥网络赛 1009 Removed Interval

    跳跃式LIS(nlogn),在普通的转移基础上增加一种可以跨越一段距离的转移,用一颗新的树状数组维护,同时,我们还要维护跨越完一次后面的转移,所以我用了3颗树状数组.. 比赛的时候一句话位置写错了,然 ...

  2. HDU 4768 Flyer (2013长春网络赛1010题,二分)

    Flyer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. HDU 4747 Mex (2013杭州网络赛1010题,线段树)

    Mex Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submis ...

  4. 2015合肥网络赛 HDU 5489 Removed Interval LIS+线段树(树状数组)

    HDU 5489 Removed Interval 题意: 求序列中切掉连续的L长度后的最长上升序列 思路: 从前到后求一遍LIS,从后往前求一遍LDS,然后枚举切开的位置i,用线段树维护区间最大值, ...

  5. 2015合肥网络赛 HDU 5492 Find a path 动归

    HDU 5492 Find a path 题意:给你一个矩阵求一个路径使得 最小. 思路: 方法一:数据特别小,直接枚举权值和(n + m - 1) * aver,更新答案. 方法二:用f[i][j] ...

  6. HDU 4737 A Bit Fun 2013成都 网络赛 1010

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4737 题目大意:给定一系列数,F(i,j)表示对从ai到aj连续求或运算,(i<=j)求F(i, ...

  7. 2018 CCPC网络赛 1010 hdu 6447 ( 树状数组优化dp)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447 思路:很容易推得dp转移公式:dp[i][j] = max(dp[i][j-1],dp[i-1][j ...

  8. HDU 5876 大连网络赛 Sparse Graph

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) T ...

  9. 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1010

    #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...

随机推荐

  1. URL重写无效

    在IIS7或以上版本中使用urlrewriter时会出现无效的现像,这时候需要使用以下设置

  2. ubuntu14.04下安装ngnix,mediawiki,nodebb,everything,gitlab

    本周折腾了以下几个东西,mediawiki(维基),nodebb(论坛),gitlab(私有git服务器). 本来的目的是搭建一个wiki,选用了mediawiki后,使用apache搭建好了. 搭论 ...

  3. 配置apache虚拟域名

    Apache配置文件的修改.   ----> Apache-----> httpd.conf,打开httpd.conf文件.   1)找到:#LoadModule rewrite_modu ...

  4. [转自itilxf论坛]iTop百问百答

    iTop是什么,和其他itsm软件相比有什么优势?iTop,是一个开源web应用程序,用于IT环境的日常运营.它基于ITIL最佳实践,而又不拘泥于任何具体流程. 优势: 1. 开源,扩展性强容易开发. ...

  5. 学术作为一种志业 马克斯·韦伯Max Weber。

    注:原内容来自优酷自频带:梁文道 一千零一夜 学术作为一种志业马克斯·韦伯Max Weber. 韦伯是社会学的三大创始人之一.另外两个,一个是法国的涂尔干,还有一个就是我们中国人都知道的马克思.在其& ...

  6. MySQL优化性能my.cnf详解

    提供一个MySQL 5.6版本适合在1GB内存VPS上的my.cnf配置文件(点击这里下载文件): [client] port=3306 socket=/tmp/mysql.sock [mysqld] ...

  7. C指针-const char* p到底是什么不可以改变

    char a = 'w'; char b = 'q'; const char* p = &a; p = &b; printf("%c",p[0]); 如上一段代码, ...

  8. C# 的一些语法特性

    1.? -NullableC# 里像int,bool,double 这样的struct和enum类型都不能为null.如果确实想在值域上加上null的话,Nullable就派上用场了.T?是Nulla ...

  9. Thinking in Java——笔记(11)

    Holding Your Objects In general, your programs will always be creating new objects based on some cri ...

  10. DP HDU1421

    搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...