华为OD机试真题-任务调度【2023.Q1】

本文介绍了一道华为OD机试真题,涉及任务调度问题。题目要求使用‘可抢占优先权调度’算法,即高优先级任务到来时可抢占CPU。给出的解题思路是利用优先队列,按优先级和到达时间执行任务。文章还提供了详细的解题步骤和参考代码。

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

题目内容

现有一个CPU和一些任务需要处理,已提前获知每个任务的任务ID、优先级、所需执行时间和到达时间。CPU同时只能运行一个任务,请编写一个任务调度程序,采用“可抢占优先权调度”调度算法进行任务调度,规则如下:
1:如果一个任务到来时,CPU是空闲的,则CPU可以运行该任务直到任务执行完毕。但是如果运行中有一个更高优先级的任务到来,则CPU必须暂停当前任务去运行这个优先级更高的任务;
2:如果一个任务到来时,CPU正在运行一个比他优先级更高的任务时,信道大的任务必须等待;
3:当CPU空闲时,如果还有任务在等待,CPU会从这些任务中选择一个优先级最高的任务执行,相同优先级的任务选择到达时间最早的任务。
输入描述
输入有若干行,每一行有四个数字(均小于10^8),分别为任务ID,任务优先级,执行时间和到达时间。每个任务的任务ID不同,优先级数字越大优先级越高,并且相同优先级的任务不会同时到达。
输入的任务已按照到达时间从小到大排序,并且保证在任何时间,处于等待的任务不超过10000个。
输出描述
按照任务执行结束的顺序,
示例一
输入
1 3 5 1
2 1 5 10
3 2 7 12
4 3 2 20
5 4 9 21
6 4 2 22
输出
1 6
3 19
5 30
6 32
4 33
2 35

解题思路

这道题可以使用自定义排序来做,不过时间复杂度非常高,某些c

### 关于2024年华为OD中的特殊加密算法真实题目 针对2024年华为OD中涉及的特殊加密算法,具体的真实题目尚未公开全部细节[^2]。然而,在以往的考模式和其他相关资料中可以推测出可能考察的方向。 #### 可能考察的内容方向 1. **基础加密原理** 对称加密与非对称加密的概念及其应用场景可能是测的重点之一。考生需理解不同加密方式的工作制以及适用场景[^1]。 2. **常见加密算法实现** 题目可能会要求编写简单的加密解密程序,比如基于给定条件下的AES、DES等标准加密算法的应用实例。这不仅考验编程能力也检验对于安全协议的理解程度。 3. **自定义简易加密方案设计** 考生被要求根据特定需求创建一个简易但有效的加密方法,并能够解释其安全性依据。此类问题旨在评估候选人的创新思维和技术应用水平[^3]。 ```java // AES Encryption Example Code Snippet import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; public class AESEncryption { public static void main(String[] args) throws Exception { KeyGenerator keyGen = KeyGenerator.getInstance("AES"); keyGen.init(128); SecretKey secretKey = keyGen.generateKey(); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] encryptedData = cipher.doFinal("Sensitive Data".getBytes()); System.out.println("Encrypted data: " + new String(encryptedData)); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值