nssl1209-奇怪的队列【贪心,权值线段树】

正题


题目大意

给出每个人前或后面比他高的人数,然后求一个序列,人们高度字典序最小的序列。


解题思路

我们将高度从小到大插入,然后对于每个人至少保留一些比他高的人的空位,然后用权值线段树O(log2n)O(log^2 n)O(log2n)计算第k个空位的位置插入。
当然也有二分加树状数组,详见
https://blog.csdn.net/Mr_wuyongcong/article/details/81988835


code

#include<cstdio>
#include<algorithm>
#define N 100010
using namespace std;
struct node{int h,num;
}a[N];
struct treenode{int l,r,w;
}tree[N*8];
int n,put[N];
bool cmp(node x,node y)
{return x.h<y.h;}
int read(){int x=0,flag=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')flag=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*flag;
}
void write(int x)
{if(x>9) write(x/10);putchar(x%10+48);return;
}
void build(int k,int l,int r)//建树
{tree[k].l=l;tree[k].r=r;tree[k].w=r-l+1;if(l==r) return;int mid=(l+r)/2;build(k*2,l,mid);build(k*2+1,mid+1,r);
}
void inster(int k,int num,int i)//第num个空位
{tree[k].w--;if(tree[k].l==tree[k].r){put[tree[k].l]=i;return;}if(tree[k*2].w>=num) inster(k*2,num,i);else inster(k*2+1,num-tree[k*2].w,i);
}
int main()
{n=read();for(int i=1;i<=n;i++)a[i].h=read(),a[i].num=read();sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++)if(a[i].num>=n-i+1){printf("impossible");return 0;}build(1,1,n);for(int i=1;i<=n;i++){int k=min(a[i].num+1,n-a[i].num-i+1);//计算最小字典序的位置inster(1,k,a[i].h);}for(int i=1;i<=n;i++)write(put[i]),putchar(' ');
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美妙的Github

这十天来&#xff0c;一度被自走棋带入了旋涡。没学到什么&#xff0c;但让我惊喜的是&#xff0c;游戏之余&#xff0c;我尝试了下Github。人们都讲Github是程序员的必备&#xff0c;连Github都不知道做什么程序员。玩了github之后我才是知道什么叫大佬。 通常我找源代码都是上…

layer之jquery 弹窗插件 (最后版本v1.8.5)

转载自 jquery 弹窗插件 layer jquery.layer版本&#xff08;v1.8.5&#xff09;下载地址 注意&#xff1a;v1.8.5后改版移除各种API&#xff0c;构造方法改版 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ht…

白嫖之Github

文章目录[x]微信机器人这十天来&#xff0c;一度被自走棋带入了旋涡。没学到什么&#xff0c;但让我惊喜的是&#xff0c;游戏之余&#xff0c;我尝试了下Github。人们都讲Github是程序员的必备&#xff0c;连Github都不知道做什么程序员。玩了github之后我才是知道什么叫大佬。…

asp.net core封装layui组件示例分享

什么封装&#xff1f;这里只是用了TagHelper&#xff0c;是啥&#xff1f;自己瞅文档去 在学习使用TagHelper的时候&#xff0c;最希望的就是能有个Demo能够让自己作为参考 怎么去封装一个组件&#xff1f; 不同的情况怎么去实现&#xff1f; 有没有更好更高效的方法&#xff1…

ssl提高组周三备考赛【2018.10.17】

前言 爆零… 成绩 爆蛋的就不放了 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112017hjq2017hjq2017hjq2022022021414148888881001001002222017zyc2017zyc2017zyc1001001000001001001000003332015lzx2015lzx2015lzx1001001001001001000000004442017lrz2017lrz2…

layer之弹层组件文档 layui.layer(v.1.9.0之后)

弹层组件文档 - layui.layer layer 至今仍作为 layui 的代表作&#xff0c;她的受众广泛并非偶然&#xff0c;而是这数年来的坚持、不弃的执念&#xff0c;将那些不屑的眼光转化为应得的尊重&#xff0c;不断完善和维护、不断建设和提升社区服务&#xff0c;在 Web 开发者的圈子…

设置宽带自动连接

刚接触电脑的小伙伴有没有这样的困扰&#xff0c;每次电脑开机的时候都要自己手动重新连接宽带&#xff0c;很麻烦。 而通过一些设置我们可以免除这样的麻烦&#xff0c;不需要输入账号密码&#xff0c;开机自动连接&#xff0c;每次开机省去个一两分钟的宽带连接时间&#xf…

随时随地以任意方式编写 .NET 应用程序

希望大家现在都知道&#xff0c;Microsoft .NET 不再仅适用于 Windows。借助 .NET Core&#xff0c;可以使用想要的语言&#xff08;C#、Visual Basic 或 F#&#xff09;编写应用程序&#xff0c;这些应用程序可以在选定的任何 OS&#xff08;Windows、macOS 或 Linux&#xff…

ssl提高组周四备考赛【2018.10.18】

前言 开始做四面八方扣来的题 成绩 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112017zyc2017zyc2017zyc1601601607070703030306060602222017wyc2017wyc2017wyc1401401408080801010105050503332017lrz2017lrz2017lrz1401401404040401001001000004442017xjq2017x…

java实现如何定时给微信群中发送消息

大家好&#xff0c;我是雄雄。 前言 前几天&#xff0c;发了一个系列这样的文章&#xff0c;如下所示&#xff1a; java实现每日给女友微信发送早安等微信信息java实现给微信群中定时推送消息如何将每日新闻添加到自己博客中&#xff0c;发送到微信群中 基本都是说的一个事儿…

一张图理清ASP.NET Core启动流程

1. 引言 对于ASP.NET Core应用程序来说&#xff0c;我们要记住非常重要的一点是&#xff1a;其本质上是一个独立的控制台应用&#xff0c;它并不是必需在IIS内部托管且并不需要IIS来启动运行&#xff08;而这正是ASP.NET Core跨平台的基石&#xff09;。ASP.NET Core应用程序拥…

ssl提高组周六备考赛【2018.10.20】

前言 er…竟然卡读入输出还不给快读qwq 成绩 有些dalao被老师拉去USACO了&#xff0c;所以没有 HJW应该去jzoj做题了 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112017myself2017myself2017myself2402402407070701001001007070702222017zyc2017zyc2017zyc1901…

DevOps之发布系统V1.0

一、发布系统架构 &#xff08;1&#xff09;普通发布 &#xff08;2&#xff09;微服务发布 二、子系统与功能模块 &#xff08;1&#xff09;代码仓库 github、gitlab、svn &#xff08;2&#xff09;构建机 jenkins、maven构建机、本地构建包 &#xff08;3&#xff0…

Nodejs安装及使用

现阶段nodejs我用的多的是它里面的npm js的各种库都可以用npm安装&#xff0c;十分方便&#xff0c;再也不用去网上找了 当然&#xff0c;主要还是github上面的很多项目都要用npm“解封” 那下面说下它的安装吧 进入官网 https://nodejs.org/en/ 它会自动检测你的电脑&#xf…

在ASP.NET Core上实施每个租户策略的数据库

不定时更新翻译系列&#xff0c;此系列更新毫无时间规律&#xff0c;文笔菜翻译菜求各位看官老爷们轻喷&#xff0c;如觉得我翻译有问题请挪步原博客地址 本博文翻译自&#xff1a; http://gunnarpeipman.com/2017/08/database-per-tenant/ 让我们继续使用ASP.NET Core web应用…

nssl1216-码灵鼠【数学】

正题 题目大意 一个序列 a01a_01a0​1 akaiaj(i,j∈[0..k−1])a_ka_ia_j(i,j\in[0..k-1])ak​ai​aj​(i,j∈[0..k−1]) i和j随机选取 求ana_nan​的期望值 解题思路 先打个表不难发现aii1a_ii1ai​i1 之后我们用数学归纳法开始证明 a0011a_0011a0​011 然后用等差序列之和计…

JS中typeof的用法

转载自 JS中typeof的用法 js是一门弱语言&#xff0c;它在声明变量时无需确定变量的类型&#xff0c;js在运行时会自动判断。那么如何判断一个变量的类型呢&#xff0c;js提供了typeof运算符&#xff0c;用来检测一个变量的类型。 1. typeof的语法 typeof是一个运算符&#x…

php动态网站

记得从五六月份就说要建一个可以注册登录的网站了&#xff0c;结果自己两个多月都没能建成&#xff0c;由于学习动态网站实在需要太多知识了&#xff0c;可以说我这几个月的时间都是花在网页上的&#xff0c;从刚开始的htmlcss 到后面的js&#xff0c;js花了太多太多时间&#…

从头编写 asp.net core 2.0 web api 基础框架 (2)

上一篇是: 从头编写 asp.net core 2.0 web api 基础框架 (1) Github源码地址是: https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 本文讲的是里面的Step 2. 上一次, 我们使用asp.net core 2.0 建立了一个Empty project, 然后做了…

nssl1217-So many prefix?【KMP】

正题 题目大意 求长度为偶数的前缀在字符串SSS中出现的次数和。 解题思路 我们先不考虑长度为偶数的话&#xff0c;答案很好求。先求出KMP的next数组&#xff0c;然后numinumnexti1num_inum_{next_i}1numi​numnexti​​1。 之后num的和就是答案。 注:num数组表示前i个字符的…