按身高排序,每个人前面最高的人数有上限,如果超出上限说明impossible,

每次考虑最小的人,把他放在在当前的从左往右第k+1个空位

因为要求字典序最小,所以每次k和(上限-k)取min值。

没有修改操作,只有删除,可用线段树维护空位数量s,每次类似名次树判断一下第k个空位在哪颗子树上(原来这叫划分树

到达叶子返回位置编号并减少空位数量,push_up的时候维护一下空位数量。

#include<bits/stdc++.h>
using namespace std; const int maxn = 1e5+;
struct Nd
{
int h,k;
void IN(){ scanf("%d%d",&h,&k); }
bool operator < (const Nd& rh) const{
return h < rh.h;
}
}nd[maxn];
int N; bool chk()
{
sort(nd,nd+N);
for(int i = ,n = N-; i <= n; i++){
if(nd[i].k > n-i) return false;
nd[i].k = min(nd[i].k,n-i-nd[i].k);
}
return true;
} #define lo (o<<1)
#define ro (o<<1|1)
#define lsn L, M, lo
#define rsn M+1,R, ro
#define mid int M = (L+R)>>1;
#define para int L = 0, int R = N-1,int o = 1 int s[maxn<<];
void build(para)
{
s[o] = R-L+;
if(L==R) return;
mid
build(lsn);
build(rsn);
} int qk;
int qud(para)
{
if(L==R){ s[o]--; return L; }
mid
int re = ;
if(s[lo]>=qk) re = qud(lsn);
else { qk -= s[lo];re = qud(rsn); }
s[o] = s[lo] + s[ro];
return re;
} int ans[maxn]; //#define LOCAL
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
int T, ks = ; scanf("%d",&T);
while(T--){
scanf("%d",&N);
for(int i = ; i < N; i++) nd[i].IN();
printf("Case #%d:",++ks);
if(!chk()) { puts(" impossible"); continue; }
build();
for(int i = ; i < N; i++){
qk = nd[i].k+;
ans[qud()] = nd[i].h;
}
for(int i = ; i < N; i++){
printf(" %d",ans[i]);
}
puts("");
}
return ;
}

HDU - 5493 Queue 2015 ACM/ICPC Asia Regional Hefei Online(线段树)的更多相关文章

  1. 【线段树】HDU 5493 Queue (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5493 题目大意: N个人,每个人有一个唯一的高度h,还有一个排名r,表示它前面或后面比它高的人的个数 ...

  2. (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )

    http://acm.hdu.edu.cn/showproblem.php?pid=5441 Travel Time Limit: 1500/1000 MS (Java/Others)    Memo ...

  3. (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)

    http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others)  ...

  4. 【二分】【最长上升子序列】HDU 5489 Removed Interval (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5489 题目大意: 一个N(N<=100000)个数的序列,要从中去掉相邻的L个数(去掉整个区间 ...

  5. 【动态规划】HDU 5492 Find a path (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意: 一个N*M的矩阵,一个人从(1,1)走到(N,M),每次只能向下或向右走.求(N+ ...

  6. 【贪心】【模拟】HDU 5491 The Next (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5491 题目大意: 一个数D(0<=D<231),求比D大的第一个满足:二进制下1个个数在 ...

  7. (线段树 区间查询)The Water Problem -- hdu -- 5443 (2015 ACM/ICPC Asia Regional Changchun Online)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=5443 The Water Problem Time Limit: 1500/1000 MS (Java/ ...

  8. (字符串处理)Fang Fang -- hdu -- 5455 (2015 ACM/ICPC Asia Regional Shenyang Online)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=5455 Fang Fang Time Limit: 1500/1000 MS (Java/Others)  ...

  9. hdu 5492 Find a path(dp+少量数学)2015 ACM/ICPC Asia Regional Hefei Online

    题意: 给出一个n*m的地图,要求从左上角(0, 0)走到右下角(n-1, m-1). 地图中每个格子中有一个值.然后根据这些值求出一个最小值. 这个最小值要这么求—— 这是我们从起点走到终点的路径, ...

随机推荐

  1. Unobtrusive Javascript有三层含义

    一是在HTML代码中不会随意的插入Javsscript代码,只在标签中加一些额外的属性值,然后被引用的脚本文件识别和处理: 二是通过脚本文件所增加的功能是一种渐进式的增强,当客户端不支持或禁用了Jav ...

  2. Scipy实现图片去噪

    先贴要处理的图片如下 由图片显示可知: # 图片中存在噪声点,白色的圆环# 圆环上的数据和圆环里面和外面不同,所以可以显示出肉眼可识别的图片# 波动# 存在噪声的地方,波动比较大 # 傅里叶变换可以将 ...

  3. cf822C(贪心)

    题目链接: http://codeforces.com/problemset/problem/822/C 题意: 有n条线段(n<=2e5) 每条线段有左端点li,右端点ri,价值cost(1 ...

  4. 2014-11-1 NOIP模拟赛1

    冲刺NOIP2014复赛模拟题第六套第二试   题目名称 日历游戏 最大公约数 密码 英文代号 calendar gcd pasuwado 输入文件名 calendar.in gcd.in pasuw ...

  5. 洛谷P1587 [NOI2016]循环之美

    传送门 不会,先坑着 https://kelin.blog.luogu.org/solution-p1587 //minamoto #include<cstdio> #include< ...

  6. spring框架_IOC与注解

    1.什么是IOC? IoC(Inverse Of Control:反转控制) 2.IOC的作用是什么? 削减计算机程序的耦合(解除我们代码中的依赖关系). 3.关于程序的耦合 /** * 程序的耦合 ...

  7. linux vim 配置 go 开发环境

    安装vim-go 插件 vim 暂时对golang 还不支持语法高亮,如果用户希望使用vim 开发golang 程序,还需要给vim 安装对应的插件 首先需要安装一个vim-pathogen vim插 ...

  8. layui时间控件联动:开始时间、结束时间,有效时间范围

    实际开发中,经常遇到时间控件联动的情况,然后每次都网上搜代码Copy,不过每次都有点小Bug让你错不及防: 这次,在这里备份一下,以后Copy自己的得了(欢迎Copy代码,若遇到问题,请麻烦回复我一下 ...

  9. 测试REST Web服务

    EST Web服务的测试计划 线程组 HTTP请求 与任何Jmeter测试一样,我们首先需要创建一个线程组以及一个HTTP请求采样器. 如果您现在运行测试,则可能会收到错误,响应代码为415,响应消息 ...

  10. 2017"百度之星"程序设计大赛 - 初赛(B)小小粉丝度度熊

    Problem Description 度度熊喜欢着喵哈哈村的大明星——星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要 ...