P1801 黑匣子_NOI导刊2010提高(06)

题目描述

Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量i。最开始的时候Black Box是空的.而i等于0。这个Black Box要处理一串命令。

命令只有两种:

ADD(x):把x元素放进BlackBox;

GET:i加1,然后输出Blackhox中第i小的数。

记住:第i小的数,就是Black Box里的数的按从小到大的顺序排序后的第i个元素。例如:

我们来演示一下一个有11个命令的命令串。(如下图所示)

现在要求找出对于给定的命令串的最好的处理方法。ADD和GET命令分别最多200000个。现在用两个整数数组来表示命令串:

1.A(1),A(2),…A(M):一串将要被放进Black Box的元素。每个数都是绝对值不超过2000000000的整数,M$200000。例如上面的例子就是A=(3,1,一4,2,8,-1000,2)。

2.u(1),u(2),…u(N):表示第u(j)个元素被放进了Blaek Box里后就出现一个GET命令。例如上面的例子中u=(l,2,6,6)。输入数据不用判错。

输入输出格式

输入格式:

 

第一行,两个整数,M,N。

第二行,M个整数,表示A(l)

……A(M)。

第三行,N个整数,表示u(l)

…u(N)。

 

输出格式:

 

输出Black Box根据命令串所得出的输出串,一个数字一行。

 

输入输出样例

输入样例#1:
7 4
3 1 -4 2 8-1000 2
1 2 6 6
输出样例#1:
3
3
1
2

说明

对于30%的数据,M≤10000;

对于50%的数据,M≤100000:

对于100%的数据,M≤200000。

 

因为他让着输出第i小的数,那么前i小的数是多少是无关紧要的

我们可以把前i小的数放到一个大根堆里面,当大根堆的值大于i的时候我们可以把它后面的放到小跟堆里面,

这样就保证了小根堆的第一个一定是第i小的,

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<queue>
 6 using namespace std;
 7 const int MAXN=200001;
 8 void read(int & n)
 9 {
10     char c='+';int x=0;bool flag=0;
11     while(c<'0'||c>'9')
12     {c=getchar();if(c=='-')flag=1;}
13     while(c>='0'&&c<='9')
14     {x=x*10+(c-48);c=getchar();}
15     flag==1?n=-x:n=x;
16 }
17 priority_queue<int,vector<int> ,greater<int> >q;
18 priority_queue< int >p;
19 int now=0;
20 int a[MAXN];
21 int b[MAXN];
22 int pre;
23 int ls[MAXN];
24 int num=0;
25 int main()
26 {
27     int n,m;
28     read(n);read(m);
29     for(int i=1;i<=n;i++)    read(a[i]);
30     for(int i=1;i<=m;i++)    read(b[i]);
31     pre=1;
32     for(int i=1;i<=n;i++)
33     {
34         p.push(a[i]);
35         if(p.size()>now)
36         {
37             q.push(p.top());
38             p.pop();
39         }
40         printf("%d***\n",q.size());
41         printf("%d+++\n",p.size());
42         while(i==b[pre])
43         {
44             printf("%d\n",q.top());
45             p.push(q.top());
46             q.pop();
47             pre++;
48             now++;
49         }
50     }
51     return 0;
52 }

 

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

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

相关文章

MySql模糊查询

常规like的使用限制&#xff1a; 1. like %keyword &#xff1a;索引失效&#xff0c;使用全表扫描。但可以通过翻转函数like前模糊查询建立翻转函数索引走翻转函数索引&#xff0c;不走全表扫描。 2. like keyword% &#xff1a;索引有效。 3. like %keyword% &#xff1a;索引…

python psycopg2使用_python 操作数据库:psycopg2的使用

1 conn psycopg2.connect(database"testdb", user"postgres",password"cohondob", host"127.0.0.1", port"5432")这个API打开一个连接到PostgreSQL数据库。如果成功打开数据库时&#xff0c;它返回一个连接对象。2cursor c…

软件测试人员棘手的问题,Èí¼þ²âÊԵļ¬ÊÖÎÊÌ⣺ÈçºÎ±ÜÃâÖظ´ÌύȱÏÝ...

¡¡¡¡£££©£¡££¡££££©©£¡¡¡¡¡BUG£££¢¡£££¡££¡£¡£——£…

机器学习实用指南_机器学习方法:实用指南

机器学习实用指南by Karlijn Willems通过Karlijn Willems 机器学习方法&#xff1a;实用指南 (How Machines Learn: A Practical Guide) You may have heard about machine learning from interesting applications like spam filtering, optical character recognition, and …

本地仓库settings.xml中使用阿里的仓库

背景 当前使用eclipse自带的maven碰到两个蛋疼的问题&#xff1a; maven在国内使用如果不进行FQ则会痛苦不堪如便秘。maven下载大量jar包导致某盘不够用&#xff0c;需要换大的分区。因此为了解决这个问题就介绍两个eclipse配置&#xff1a;maven本地路径配置和maven外部路径配…

day6_python之md5加密

#md5是不可逆的&#xff0c;就是没有办法解密的 Python内置哈希库对字符串进行MD5加密的方法-hashlibimport hashlib def my_md5(s,salt): #用函数&#xff0c;为了提高代码的复用率s ssalt #1.必须是字符串news str(s).encode() #2.字符串需要encode编码后&#xff0…

异步服务_微服务全链路异步化实践

1. 背景随着公司业务的发展&#xff0c;核心服务流量越来越大&#xff0c;使用到的资源也越来越多。在微服务架构体系中&#xff0c;大部分的业务是基于Java 语言实现的&#xff0c;受限于Java 的线程实现&#xff0c;一个Java 线程映射到一个kernel 线程&#xff0c;造成了高并…

win7打开计算机死机,怎么样解决Win7系统运行程序引起的死机问题

Win7系统不仅需要使用到电脑中自带的一些程序&#xff0c;同时&#xff0c;也需要在win7旗舰版电脑中有选择的自己去安装一些程序。但是经常有用户会碰到Win7电脑突然跳出运行程序未响应&#xff0c;出现电脑死机的情况&#xff0c;特别是开的浏览器窗口多的时候更是死机的频繁…

(poj)1064 Cable master 二分+精度

题目链接&#xff1a;http://poj.org/problem?id1064 DescriptionInhabitants of the Wonderland have decided to hold a regional programming contest. The Judging Committee has volunteered and has promised to organize the most honest contest ever. It was decided…

PHP中如何解决高并发

PHP中如何解决高并发 1&#xff1a;硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP&#xff0c;如果访问量超过10W那么需要专用的服务器才能解决&#xff0c;如果硬件不给力 软件怎么优化都是于事无补的。主要影响服务器的速度 有&#xff1a;网络-硬盘读写速度…

es6 迭代器_揭秘ES6迭代器和迭代器

es6 迭代器by Tiago Lopes Ferreira由Tiago Lopes Ferreira 揭秘ES6迭代器和迭代器 (Demystifying ES6 Iterables & Iterators) ES6 introduces a new way to interact with JavaScript data structures — iteration. Let’s demystify it.ES6引入了一种与JavaScript数据…

JS之this与语句分号问题v(**V**)v

1 <script >2 //this知识 单词知识&#xff1a;property&#xff1a;属性 prototype&#xff1a;原型3 //*Q&#xff1a;什么是this&#xff1f;4 //*A&#xff1a;所有函数内部都有一个this&#xff0c;任何函数本质上都是通过某个对象来调用的&#xff0c;…

计算机联系函范文,致客户联络函

致客户联络函 相关内容:收到贵支部所发的“函调证明”通知&#xff0c;很高兴我校毕业生xxx同学能成为贵支部的党员发展对象&#xff0c;现对其在我校上学其间的表现证明如下&#xff1a;xxx&#xff0c;女&#xff0c;xxx年7月28日生&#xff0c;团员&#xff0c;XX年8月——X…

c语言堆栈基本代码入栈出栈_c语言的简单的进栈出栈

这个代码运行时只能输入4个以内的数有输出4个以上就没有输出了求大神看看#include#include#defineStack_Size50typedefstructSeqstack{intelem[Stack_Size];inttop...这个代码运行时只能输入4个以内的数有输出 4个以上就没有输出了 求大神看看 #include #include #define Stack…

P1401 城市(30分,正解网络流)

题目描述 N(2<n<200)个城市&#xff0c;M(1<m<40000)条无向边&#xff0c;你要找T(1<T<200)条从城市1到城市N的路&#xff0c;使得最长的边的长度最小&#xff0c;边不能重复用。 输入输出格式 输入格式&#xff1a; 第1行三个整数N,M,T用空格隔开。 第2行到…

sqlserver游标概念与实例全面解说

引言 我们先不讲游标的什么概念&#xff0c;步骤及语法&#xff0c;先来看一个例子&#xff1a; 表一 OriginSalary 表二 AddSalary 现在有2张表&#xff0c;一张是OriginSalary表--工资表&#xff0c;有三个字段0_ID 员工…

为什么Docker对初创企业有意义

by Charly Vega查理维加(Charly Vega) 为什么Docker对初创企业有意义 (Why Docker makes sense for startups) Docker is becoming the standard to develop and run containerized applications.Docker正在成为开发和运行容器化应用程序的标准。 Long ago, this piece of te…

MyEclipse中Maven Web项目部署路径设置

转载于:https://www.cnblogs.com/langzichanglu/p/10336805.html

小米电视联网后显示无法解析小米电视服务器,小米电视连上无线不能上网怎么回事?教你解决办法...

原标题&#xff1a;小米电视连上无线不能上网怎么回事&#xff1f;教你解决办法互联网电视凭借在线观看影视剧这个独有的优势受到越来越多家庭的喜爱。特别是配置不俗的小米电视&#xff0c;然而随之而来的的问题也让很多用户头疼&#xff0c;比如家里的小米电视突然上不了网了…

配置Server Side TAF

实验环境&#xff1a;Oracle 11.2.0.4 RAC1.为设置TAF在RAC集群上新建服务2.启动server_taf服务3.检查确认服务正在运行4.找到刚创建服务的service_id5.根据service_id审查服务的信息6.给服务添加server side failover参数7.再次审查服务可以看到Method, Type和Retries值8.检查…