hdu1837(优先队列)看病要排队
来源:互联网 发布:java方法修饰符 编辑:程序博客网 时间:2024/05/22 11:46
分析:
优先队列水题。
注意优先队列要定义在大while里面,等效于每次都
初始化为空。
#include<stdio.h>
#include<string.h>
#include<queue>
char a[100];
using namespace std;
struct point
{
int x,y;
friend bool operator<(point a,point b)
{
if(a.y!=b.y)
return a.y<b.y;-----优先级高的优先。。
return a.x>b.x;等的时间短的优先。。
}
};
int main()
{
int m,n,k,i,j,p;
point cur;
while(scanf("%d",&m)!=EOF)
{
priority_queue<point>q[4];----------q【4】很好。。
j=1;
for(i=0;i<m;i++)
{
scanf("%s",a);
if(strcmp(a,"IN")==0)
{
scanf("%d%d",&p,&k);
cur.x=j;
cur.y=k;
q[p].push(cur);、、入队、、
j++;
}
else if(strcmp(a,"OUT")==0)
{
scanf("%d",&n);
if(q[n].empty())-----如果为空
printf("EMPTY\n");
else
{
cur=q[n].top();
q[n].pop();
printf("%d\n",cur.x);
}
}
}
}
return 0;
}
优先队列水题。
注意优先队列要定义在大while里面,等效于每次都
初始化为空。
#include<stdio.h>
#include<string.h>
#include<queue>
char a[100];
using namespace std;
struct point
{
int x,y;
friend bool operator<(point a,point b)
{
if(a.y!=b.y)
return a.y<b.y;-----优先级高的优先。。
return a.x>b.x;等的时间短的优先。。
}
};
int main()
{
int m,n,k,i,j,p;
point cur;
while(scanf("%d",&m)!=EOF)
{
priority_queue<point>q[4];----------q【4】很好。。
j=1;
for(i=0;i<m;i++)
{
scanf("%s",a);
if(strcmp(a,"IN")==0)
{
scanf("%d%d",&p,&k);
cur.x=j;
cur.y=k;
q[p].push(cur);、、入队、、
j++;
}
else if(strcmp(a,"OUT")==0)
{
scanf("%d",&n);
if(q[n].empty())-----如果为空
printf("EMPTY\n");
else
{
cur=q[n].top();
q[n].pop();
printf("%d\n",cur.x);
}
}
}
}
return 0;
}
普通方法:
结构体
((不过数大的话会超时))
#include<stdio.h>
#include<string.h>
struct point
{
int x,y,z;
}p[10000];
int main()
{
int m,i,j,k,h,r,t;
char a[100];
while(scanf("%d",&m)!=EOF)
{
t=1;
for(i=1;i<=m;i++)
{
scanf("%s",a);
if(strcmp(a,"IN")==0)
{
scanf("%d%d",&p[t].x,&p[t].y);
p[t].z=t;
t++;
}
else
{
scanf("%d",&k);
h=0,r=0;
for(j=1;j<t;j++)
{
if(p[j].x==k&&p[j].y>h)
{
h=p[j].y;
r=j;
}
}
p[r].y=0;
if(h!=0)
printf("%d\n",p[r].z);
else
printf("EMPTY\n");
}
}
}
return 0;
}
#include<string.h>
struct point
{
int x,y,z;
}p[10000];
int main()
{
int m,i,j,k,h,r,t;
char a[100];
while(scanf("%d",&m)!=EOF)
{
t=1;
for(i=1;i<=m;i++)
{
scanf("%s",a);
if(strcmp(a,"IN")==0)
{
scanf("%d%d",&p[t].x,&p[t].y);
p[t].z=t;
t++;
}
else
{
scanf("%d",&k);
h=0,r=0;
for(j=1;j<t;j++)
{
if(p[j].x==k&&p[j].y>h)
{
h=p[j].y;
r=j;
}
}
p[r].y=0;
if(h!=0)
printf("%d\n",p[r].z);
else
printf("EMPTY\n");
}
}
}
return 0;
}
- hdu1837(优先队列)看病要排队
- 看病要排队(优先队列priority_queue)
- HDU1873 看病要排队 (优先队列)
- HDU1873 看病要排队(优先队列)
- 看病要排队(优先队列)
- 看病要排队(优先队列)
- 看病要排队!(优先队列
- hdu 1873看病要排队(优先队列)
- hdu 1873 看病要排队(优先队列)
- HDU 1873 看病要排队(优先队列)
- hdu1873看病要排队(优先队列的应用)
- hdu1873 看病要排队(结构体优先队列)
- hdu 1873 看病要排队(优先队列)
- HDOJ 1873 看病要排队(优先队列)
- HDU 1873 看病要排队 (优先队列)
- HDOJ 1873 看病要排队 (优先队列)
- HDU 1873 看病要排队(优先队列)
- 看病要排队(杭电oj1873)(优先队列)
- linux之creat函数解析
- Android访问https服务
- 局部刷新
- 程序员之一 态度
- POJ 1002 487-3279 排序检索。
- hdu1837(优先队列)看病要排队
- 程序员之二 方法
- HTML入门
- 程序员之三 流程
- 黑马程序员—ADO.NET
- 代理
- VS2010中使用Jquery调用Wcf服务读取数据库记录
- 进程与线程的区别?
- android之service使用