中国专业做鞋子的网站诸暨公司网站建设

张小明 2025/12/28 17:15:59
中国专业做鞋子的网站,诸暨公司网站建设,管理咨询公司简介,王也的口头禅题目描述: 有5台打印机打印文件#xff0c;每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分#xff0c;所以队列中的文件有1~10不同的优先级一#xff0c;其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优…题目描述:有5台打印机打印文件每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分所以队列中的文件有1~10不同的优先级一其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优先级一样的文件则选择最早进入队列的那个文件。现在请你来模拟这5台打印机的打印过程。输入描述:每个输入包含1个测试用例一每个测试用例第1行给出发生事件的数量N(ON 1000)。接下来有N行分别表示发生的事件。共有如下两种事件:1.N PNUM表示有一个拥有优先级NUM的文件放到了打印机Р的待打印队列中。(0P 5,0NUM 10);2.OUTP表示打印机Р进行了一次文件打印同时该文件从待打印队列中取出。(0P 5)。输出描述:对于每个测试用例每次OUTP事件请在一行中输出文件的编号。如果此时没有文件可以打印请输出NULL。文件的编号定义为:IN PNUM事件发生第×次此处待打印文件的编号为x。编号从1开始。示例1输入:7IN 1 1IN 1 2IN 1 3IN 21OUT 1OUT 2OUT 2输出:34NULL解题思路需要模拟5台打印机的打印队列处理两种事件文件入队IN和打印出队OUT。对于OUT事件需要从指定打印机的队列中取出优先级最高的文件数字越大优先级越高优先级相同时选择最早入队的文件。关键步骤数据结构选择每台打印机使用一个优先队列或普通队列排序来管理文件队列中的元素需要记录文件的编号和优先级。事件处理根据输入的事件类型分别处理IN事件将文件加入对应打印机的队列并记录文件编号。OUT事件从对应打印机的队列中取出优先级最高的文件或NULL。优先级处理在队列中优先级高的文件先出队优先级相同时先入队的先出队。代码实现C 实现使用优先队列priority_queue自定义排序规则#include iostream #include queue #include vector using namespace std; struct File { int id; int priority; int seq; // 入队顺序 }; struct Compare { bool operator()(const File a, const File b) { if (a.priority ! b.priority) { return a.priority b.priority; } return a.seq b.seq; } }; int main() { int N; cin N; vectorpriority_queueFile, vectorFile, Compare printers(5); int fileId 1; for (int i 0; i N; i) { string op; cin op; if (op IN) { int p, num; cin p num; printers[p - 1].push({fileId, num, fileId}); fileId; } else if (op OUT) { int p; cin p; if (!printers[p - 1].empty()) { File file printers[p - 1].top(); printers[p - 1].pop(); cout file.id endl; } else { cout NULL endl; } } } return 0; }Python 实现使用堆heapq模拟优先队列import heapq class File: def __init__(self, id, priority, seq): self.id id self.priority priority self.seq seq def __lt__(self, other): if self.priority ! other.priority: return self.priority other.priority return self.seq other.seq def main(): N int(input()) printers [[] for _ in range(5)] file_id 1 for _ in range(N): op input().split() if op[0] IN: p int(op[1]) - 1 num int(op[2]) heapq.heappush(printers[p], File(file_id, num, file_id)) file_id 1 elif op[0] OUT: p int(op[1]) - 1 if printers[p]: file heapq.heappop(printers[p]) print(file.id) else: print(NULL) if __name__ __main__: main()Java 实现使用PriorityQueue自定义排序import java.util.*; class File { int id; int priority; int seq; public File(int id, int priority, int seq) { this.id id; this.priority priority; this.seq seq; } } public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); int N sc.nextInt(); PriorityQueueFile[] printers new PriorityQueue[5]; for (int i 0; i 5; i) { printers[i] new PriorityQueue((a, b) - { if (a.priority ! b.priority) { return b.priority - a.priority; } return a.seq - b.seq; }); } int fileId 1; for (int i 0; i N; i) { String op sc.next(); if (op.equals(IN)) { int p sc.nextInt() - 1; int num sc.nextInt(); printers[p].add(new File(fileId, num, fileId)); fileId; } else if (op.equals(OUT)) { int p sc.nextInt() - 1; if (!printers[p].isEmpty()) { File file printers[p].poll(); System.out.println(file.id); } else { System.out.println(NULL); } } } } }JavaScript 实现使用数组模拟优先队列class File { constructor(id, priority, seq) { this.id id; this.priority priority; this.seq seq; } } function main() { const readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout, }); let N; const printers Array.from({ length: 5 }, () []); let fileId 1; let lineCount 0; rl.on(line, (line) { if (lineCount 0) { N parseInt(line); lineCount; } else { const parts line.split( ); const op parts[0]; if (op IN) { const p parseInt(parts[1]) - 1; const num parseInt(parts[2]); printers[p].push(new File(fileId, num, fileId)); fileId; } else if (op OUT) { const p parseInt(parts[1]) - 1; if (printers[p].length 0) { printers[p].sort((a, b) { if (a.priority ! b.priority) { return b.priority - a.priority; } return a.seq - b.seq; }); const file printers[p].shift(); console.log(file.id); } else { console.log(NULL); } } lineCount; if (lineCount N) { rl.close(); } } }); } main();C 实现使用数组模拟优先队列#include stdio.h #include string.h typedef struct { int id; int priority; int seq; } File; File printers[5][1000]; int sizes[5] {0}; int main() { int N; scanf(%d, N); int fileId 1; for (int i 0; i N; i) { char op[5]; scanf(%s, op); if (strcmp(op, IN) 0) { int p, num; scanf(%d %d, p, num); printers[p - 1][sizes[p - 1]].id fileId; printers[p - 1][sizes[p - 1]].priority num; printers[p - 1][sizes[p - 1]].seq fileId; sizes[p - 1]; fileId; } else if (strcmp(op, OUT) 0) { int p; scanf(%d, p); if (sizes[p - 1] 0) { printf(NULL\n); continue; } int maxIdx 0; for (int j 1; j sizes[p - 1]; j) { if (printers[p - 1][j].priority printers[p - 1][maxIdx].priority) { maxIdx j; } else if (printers[p - 1][j].priority printers[p - 1][maxIdx].priority) { if (printers[p - 1][j].seq printers[p - 1][maxIdx].seq) { maxIdx j; } } } printf(%d\n, printers[p - 1][maxIdx].id); for (int j maxIdx; j sizes[p - 1] - 1; j) { printers[p - 1][j] printers[p - 1][j 1]; } sizes[p - 1]--; } } return 0; }总结数据结构优先队列或排序后的数组是解决优先级问题的关键。事件处理区分IN和OUT事件分别处理入队和出队逻辑。优先级规则数字越大优先级越高相同时选择最早入队的文件。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

域名与网站建设网址seo分析

抖音下载器完整使用指南:从零开始保存高清内容 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾经在抖音上看到精彩的短视频或直播,想要保存下来反复观看却无从下手&#xff1…

张小明 2025/12/24 0:25:40 网站建设

网站建设 模块怎么在百度制作自己的网站

闲谈:上一篇初识模板我也只是初略了解,这一次我在整理一下。模板模板是C支持泛型程序设计的工具,通过它可以实现参数化多态性。参数化多态性:就是将程序所处理的对象的类型参数化,使得一段程序可以处理多种不同类型的对…

张小明 2025/12/24 0:24:37 网站建设

过年做哪些网站能致富mp6 wordpress 静态

Red Hat Enterprise Linux 实践操作指南 1. 图形桌面探索 登录系统 :在登录界面,点击登录名 “student” 并输入密码。 访问工具 :在桌面右上角可看到当前登录用户的名称,点击该用户名可访问不同工具,如更改密码的工具。 打开终端 :右键单击图形桌面,选择 “在终…

张小明 2025/12/24 0:23:34 网站建设

网站如何被百度快速收录怎么举报平台

驱动总裁是一款专业的驱动管理工具,免安装单文件直接运行,自带网卡驱动无需联网,智能识别硬件并匹配最佳驱动。适用于新装系统、更换硬件、驱动异常等场景,一键解决鼠标卡顿、没有声音、无法联网等驱动问题。 软件下载 驱动工具软件 适用平台…

张小明 2025/12/24 0:22:31 网站建设

wordpress没有样式表漳州网站优化

Sigil查找替换功能全攻略:从入门到精通的文本编辑指南 【免费下载链接】Sigil Sigil is a multi-platform EPUB ebook editor 项目地址: https://gitcode.com/gh_mirrors/si/Sigil 你是不是经常在编辑电子书时遇到这样的困扰:需要批量修改大量文本…

张小明 2025/12/28 5:18:54 网站建设

wordpress 末班百度seo优化是做什么的

南大通用GBase8s数据库的扩展数据类型包括复杂数据类型、不透明数据类型等,这些类型增强了数据库对非传统数据结构的支持。复杂数据类型: 这类类型可以存储一个或多个其他内置或扩展数据类型的值,支持嵌套结构。例如,集合数据类型…

张小明 2025/12/24 0:20:25 网站建设