c语言oj病人排队,【杭电-oj】-1873-看病要排队(优先队列)

本文探讨了一个关于医院就诊流程的模拟问题,涉及不同病情优先级的设定和医生如何依据这些规则进行诊疗决策。你需要帮助模拟医生根据病人优先级和到达时间进行诊治的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看病要排队

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 7466    Accepted Submission(s): 3127

Problem Description

看病要排队这个是地球人都知道的常识。

不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。

现在就请你帮助医院模拟这个看病过程。

Input

输入数据包含多组测试,请处理到文件结束。

每组数据第一行有一个正整数N(0

接下来有N行分别表示发生的事件。

一共有两种事件:

1:"IN A B",表示有一个拥有优先级B的病人要求医生A诊治。(0

2:"OUT A",表示医生A进行了一次诊治,诊治完毕后,病人出院。(0

### 关于东方博宜OJ平台编号1000至1500之间题目C语言解法 针对东方博宜OJ平台上编号处于1000到1500区间内的题目,采用C语言求解时需注意不同类型的算法题可能涉及的基础知识点和技术要点。虽然具体每一道题目的细节无法在此一一列举,但可以给出一些常见类型问题及其对应的解决方案框架。 #### 数据结构操作类题目 对于涉及到诸如链表、栈、队列等基本数据结构的操作题目而言,在解答过程中应当充分利用这些结构的特点来简化逻辑流程。例如,在实现队列功能时可以通过两个栈来进行模拟[^4]: ```c typedef struct { int *stack1; int top1; int size; int *stack2; int top2; } MyQueue; /** Initialize your data structure here. */ MyQueue* myQueueCreate() { MyQueue *obj = (MyQueue *)malloc(sizeof(MyQueue)); obj->size = 100; // 假设最大容量为100 obj->top1 = -1; obj->top2 = -1; obj->stack1 = (int *)malloc(obj->size * sizeof(int)); obj->stack2 = (int *)malloc(obj->size * sizeof(int)); return obj; } // 更多函数定义... ``` 上述代码片段展示了如何利用双栈机制构建简易版的队列对象模型。当遇到实际应用中的入队出队需求时,则可通过调整`push()`与`pop()`内部元素转移策略完成相应任务。 #### 图遍历及树形结构处理 考虑到该范围内可能存在关于图论以及各类树型结构(如二叉查找树BST)的相关练习,掌握深度优先搜索(DFS)和广度优先搜索(BFS)这两种核心探索模式至关重要。特别是面对二叉树前序遍历这样的经典案例时,递归方式往往是最直观有效的途径之一[^1]: ```c void preOrder(struct TreeNode* node){ if(node != NULL){ printf("%d ",node->val); /* 访问根结点 */ preOrder(node->left); /* 左子树先序遍历 */ preOrder(node->right); /* 右子树先序遍历 */ } } ``` 这段简单的递归程序能够按照“访问当前节点 -> 处理左孩子 -> 继续右孩子”的顺序依次输出所有非空节点值序列,适用于大多数标准形式下的二叉树实例。 #### 数组边界条件管理技巧 部分习题可能会考察数组越界保护措施或是循环体内索引变量的有效控制能力。此时引入取模运算符(`%`)作为辅助手段可以帮助有效应对周期性变化场景下可能出现的数据回绕现象[^2]。比如在一个固定长度环状缓冲区中存储并读取消息记录时,就可以借助此类算术特性确保指针始终指向合法位置而不至于溢出容器界限之外。 综上所述,尽管未能提供确切覆盖整个目标编号段落的具体例子集锦,但从宏观角度出发探讨了几种具有代表性的编程挑战类别,并给出了相应的理论指导方针供参考借鉴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值