点击打开链接

可能出现的问题:

1.当门外人数不足p人时没有判断队列非空,导致RE。

2.在m次开门之后最后进来到一批人没有入队。

3.给定的开门时间可能是打乱的,需要进行排序。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cstring>
#include<iostream>
#include<vector>
using namespace std;
struct people
{
char name[203];
int arrive;
int value;
/*
friend bool operator <(people a,people b)
{
if(a.value!=b.value)
return a.value<b.value;
return a.arrive>b.arrive;
}
*/
};
struct cmp
{
bool operator() (const people a,const people b) const
{
if(a.value!=b.value)
return a.value<b.value;
return a.arrive>b.arrive;
}
};
struct door
{
int t;
int p;
};
bool cmp1(door a,door b)
{
return a.t<b.t;
}
people peo[150003];
char n[150003][203];
door a[150003];
priority_queue < people , vector <people> , cmp > s;
/*priority_queue <people> s;*/
int main()
{
int T;
int k,m,q;
int i,j,num,v;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&k,&m,&q);
for(i=1;i<=k;i++)
{
scanf("%s",peo[i].name);
scanf("%d",&peo[i].value);
peo[i].arrive=i;
}
j=num=1;
for(i=1;i<=m;i++)
{
scanf("%d%d",&a[i].t,&a[i].p);
}
sort(a+1,a+m+1,cmp1);//排序
for(i=1;i<=m;i++)
{
for(;j<=a[i].t;j++)
{
s.push(peo[j]);
}
for(v=1;v<=a[i].p&&!s.empty();v++)//非空
{
strcpy(n[num++],(s.top()).name);
s.pop();
}
}
for(;j<=k;j++)//最后一批入队
{
s.push(peo[j]);
}
while(!s.empty())
{
strcpy(n[num++],(s.top()).name);
s.pop();
}
for(i=1;i<=q;i++)
{
scanf("%d",&k);
if(i<q)
printf("%s ",n[k]);
else
printf("%s",n[k]);
}
printf("\n");
}
return 0;
}

HDU5437 Alisha’s Party 优先队列的更多相关文章

  1. HDU5437 Alisha’s Party (优先队列 + 模拟)

    Alisha’s Party Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  2. HDU 5437 Alisha’s Party (优先队列)——2015 ACM/ICPC Asia Regional Changchun Online

    Problem Description Princess Alisha invites her friends to come to her birthday party. Each of her f ...

  3. hdu 5437 Alisha’s Party 优先队列

    Alisha’s Party Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_sh ...

  4. hdu5437 Alisha’s Party

    Problem Description Princess Alisha invites her friends to come to her birthday party. Each of her f ...

  5. Alisha’s Party (HDU5437)优先队列+模拟

    Alisha 举办聚会,会在一定朋友到达时打开门,并允许相应数量的朋友进入,带的礼物价值大的先进,最后一个人到达之后放外面的所有人进来.用优先队列模拟即可.需要定义朋友结构体,存储每个人的到达顺序以及 ...

  6. 优先队列 + 模拟 - HDU 5437 Alisha’s Party

    Alisha’s Party Problem's Link Mean: Alisha过生日,有k个朋友来参加聚会,由于空间有限,Alisha每次开门只能让p个人进来,而且带的礼物价值越高就越先进入. ...

  7. HDU 5437 & ICPC 2015 Changchun Alisha's Party(优先队列)

    Alisha’s Party Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  8. hdu 5437 Alisha’s Party 模拟 优先队列

    Problem Description Princess Alisha invites her friends to come to her birthday party. Each of her f ...

  9. HDU 5437 Alisha’s Party (优先队列模拟)

    题意:邀请k个朋友,每个朋友带有礼物价值不一,m次开门,每次开门让一定人数p(如果门外人数少于p,全都进去)进来,当最后所有人都到了还会再开一次门,让还没进来的人进来,每次都是礼物价值高的人先进.最后 ...

随机推荐

  1. Linux内核零碎知识

    UNIX系统:内核.shell外壳.文件系统.工具或应用程序. 操作系统功能:进程与处理机管理.存储管理.设备管理.作业管理.文件管理. 内存是磁盘的缓存,cache是内存的缓存. 可把内核看作是不断 ...

  2. PHP Warning: ob_start() : output handler 'ob_gzhandler conflicts with 'zlib output compression'

    安装phpcms过程中,会遇到Warning:  ob_start() : output handler 'ob_gzhandler conflicts with 'zlib output compr ...

  3. MVC中处理Json和JS中处理Json对象

    MVC中处理Json和JS中处理Json对象 ASP.NET MVC 很好的封装了Json,本文介绍MVC中处理Json和JS中处理Json对象,并提供详细的示例代码供参考. MVC中已经很好的封装了 ...

  4. SpringMvc之handler深入AbstractControllerhe和MultiActionController和内部资源视图解析器

    AbstractControllerhe 若处理器继承自AbstractController类,那么该控制器就具有了一些新功能.因为AbstractController类还继承自一个父类WebCont ...

  5. checkbox改成radio效果,单选,取消

    $(function () {            var allBox = $(":checkbox");            allBox.click(function ( ...

  6. HTML元素,属性,基础标签

    元素,属性 元素 html有父元素和子元素,被包含的叫子元素,如html是head的父元素,他们是父子关系,head和body是兄弟关系 <html> <head></h ...

  7. HBase High Level Architecutre

  8. Hduacm—5497

    #include <cstring> #include <cstdio> #include <iostream> using namespace std; type ...

  9. Android 浮动搜索框 searchable 使用(转)。

    Android为程序的搜索功能提供了统一的搜索接口,search dialog和search widget,这里介绍search dialog使用.search dialog 只能为于activity ...

  10. IBatis.net 输出SQL语句(七)

    一.IBatis.net输出SQL语句到控制台 输出IBatis.net生成的SQL语句到控制台,能够方便调试. 如果要想输出IBatis.net的SQL语句到控制台,那么只需要做如下配置即可: &l ...