zoukankan      html  css  js  c++  java
  • 看病(信息学奥赛一本通 1371)

    【题目描述】

    有个朋友在医院工作,想请BSNY帮忙做个登记系统。具体是这样的,最近来医院看病的人越来越多了,因此很多人要排队,只有当空闲时放一批病人看病。但医院的排队不同其他排队,因为多数情况下,需要病情严重的人优先看病,所以希望BSNY设计系统时,以病情的严重情况作为优先级,判断接下来谁可以去看病。

    【输入】

    第一行输入n,表示有n个操作。

    对于每个操作,首先输入push或pop。

    push的情况,之后会输入ai 和 bi,分别表示患者姓名和患者病情优先级。

    pop后面没有输入,但需要你输出。

    【输出】

    对于pop的操作,输出此时还在排队人中,优先级最大的患者姓名和优先级。

    表示他可以进去看病了。

    如果此时没人在排队,那么输出”none”,具体可见样例。

    【输入样例】

    7

    pop

    push bob 3

    push tom 5

    push ella 1

    pop

    push zkw 4

    pop

    【输出样例】

    none

    tom 5

    zkw 4

    【提示】

    【数据规模和约定】

    1≤n≤100000,每个人的优先级都不一样,0≤优先级≤2000000000。

    姓名都是小写字母组成的,长度小于20。


    本题肥肠简单,用结构体把姓名和优先级绑在一起,定义一个优先队列就可以啦

    (关于优先队列的用法,请看☟

    queue怎么用咧↓↓↓ - endl - 博客园
    https://www.cnblogs.com/ljy-endl/p/11260526.html)

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 struct node
     4 {
     5     string name;
     6     int num;
     7     friend bool operator <(const node &A,const node &B){
     8         return A.num<B.num;//别忘了在结构体里比大小
     9     }
    10 
    11     node(){}
    12     node(string name1,int num1):name(name1),num(num1){}
    13 
    14 };
    15 priority_queue<node>heap;
    16 int main()
    17 {
    18     int T;
    19     scanf("%d",&T);
    20     while(T--){
    21         string s;
    22         cin>>s;
    23         if(s=="pop"){
    24             if(heap.empty()) printf("none
    ");
    25             else{
    26                 cout<<heap.top().name<<" "<<heap.top().num<<endl;
    27                 heap.pop();
    28             }
    29         }
    30         else{
    31             string s1;
    32             int n;
    33             cin>>s1;
    34             cin>>n;
    35             heap.push(node(s1,n));
    36         }
    37     }
    38 
    39     return 0;
    40 }

    //参考:1371:看病 - Mr臣的博客 - CSDN博客
    https://blog.csdn.net/Wchenchen0/article/details/81259676

  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
    ASP.NET MVC 重点教程一周年版 第三回 Controller与View
    DynamicData for Asp.net Mvc留言本实例 下篇 更新
    Asp.net MVC视频教程 18 单选与复选框
    使用ASP.NET MVC Futures 中的异步Action
    ASP.NET MVC RC 升级要注意的几点
    ATL、MFC、WTL CString 的今生前世
    msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
    关于Windows内存的一些参考文章
    Windows访问令牌相关使用方法
  • 原文地址:https://www.cnblogs.com/ljy-endl/p/11262686.html
Copyright © 2011-2022 走看看