POJ1442Black Box

摘要:
Id=1442标题含义:在标题ADD操作中,给定数字有两个操作。将Add括号中的数字I添加到数字列,然后自动排列顺序。每个数字列前面都有一个数字ss,这意味着前面的GET数有ss。GET是显示现有的数字列,然后按顺序给您N个数字。下一行是M个数字,它表示每个get前面的add数,然后输出序列中的第1个数字。

http://poj.org/problem?id=1442

题意 : 题目中对给出的数字有两种操作ADD(I)操作,将ADD括号里的数字 I 加到数列里边去,然后是自动排好序的,每一个数列前边都会有一个数字ss,代表着前边GET的数量有ss个,GET就是将现有数列显现出来,然后给你N个依次要添加的数字,下边一行是M个数字,代表着每个get前边有的add的数量,然后输出这个序列中第ss个数。

思路 : 因为要排序,所以就直接用优先队列就好,但是用一个不行,会超时,至于为什么,其实我也不知道,就用了两个,大小根堆一起用,把小根堆里要输出的那个数前边的数字放到大根堆里,循环操作,如果小根堆首元素小于大根堆首元素,就交换这俩元素

POJ1442Black Box第1张POJ1442Black Box第2张
/*7 4
3 1 -4 2 8 -1000 2
1 2 6 6
Sample Output
3 3 1 2*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#include<vector>
using namespace std ;
const int maxn = 30100 ;
int main()
{
    int m,n ;
    priority_queue<int ,vector<int> ,less<int> >Q;//大根堆
    priority_queue<int ,vector<int> ,greater<int> >QQ;//小根堆
    scanf("%d %d",&m,&n);
    int a[maxn] ;
    for(int i = 1 ; i <= m ; i++)
        scanf("%d",&a[i]) ;
        int be = 1 ,c,b;
    for(int i = 1 ; i <= n ; i++)
    {
        scanf("%d",&b) ;
        for(int j = be ; j <= b ; j++)
        {
            QQ.push(a[j]) ;
            if(!Q.empty()&&Q.top() > QQ.top())
            {
                c = Q.top() ;
                Q.pop() ;
                Q.push(QQ.top());
                QQ.pop() ;
                QQ.push(c) ;
            }
        }
        be = b+1 ;
        printf("%d
",QQ.top()) ;
        Q.push(QQ.top());
        QQ.pop() ;
    }
    return 0 ;
}
View Code

免责声明:文章转载自《POJ1442Black Box》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇POJ2418Hardwood SpeciesPOJ1840Eps下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Reachability查询联网状态

一:确认网络环境3G/WIFI 1. 添加源文件和framework 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审(我们的)查的。 Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成如下两部: 1.1....

Groovy Groovy Templates

Groovy - Groovy Templates Groovy TemplatesAdd comment to WikiView in WikiEdit Wiki pagePrintable VersionIntroductionGroovy supports multiple ways to generate text dynamically inclu...

Boost高性能网络编程

Boost高性能网络编程 Boost高性能网络编程 2010-10-25 13:04 一、课程目标 本次课程围绕高性能网络编程这一主题,从众多的Boost类库中挑选出Boost.Asio、Boost.Thread以及其它配套的实用库,作为主要学习的内容,通过本次课程的学习,学员将具备以下能力: 掌握智能指针、高阶函数对象、对象序列化/反序...

java Redirecting Jruby ScriptEngine output to a StringWriter Stack Overflow

java - Redirecting Jruby ScriptEngine output to a StringWriter - Stack Overflow 2down vote This appears to work (I'm using 1.6.1, released last week): ScriptEngineManagerfactor...

十亿美金公司不常有 一亿美金公司花常开 | 雷锋网

十亿美金公司不常有 一亿美金公司花常开 | 雷锋网 十亿美金公司不常有 一亿美金公司花常开 林军2012-05-12 22:451条评论 13个人+15个月=10亿美金的公司。当俞永福在GMIC2012第一天上午几近压轴的演讲中提到Instagram的时候,全场哇的一声,不过,俞永福随即给泼了冷水,俞永福的观点是,在中国,这样的公司连1亿美金的估值都给...

Tomcat Firewall JMX RMI 规格严格

今天同事在现场遇到这样一个问题,堆栈如下: [2012-05-1015:26:52,798]INFO[main]util.RMIClientSocketFactoryClientSocketFactory.createSocket(10.154.2.23,63828)->10.154.2.23 [2012-05-1015:27:13,802]ERRO...

最新文章